package spring.vhostall.com;
import java.security.Security;
import java.util.Date;
import java.util.Properties; import javax.mail.Address;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailTest {
/**
* 通过代理发送邮件
*/
/**
* @param args
*/
public static void main(String[] args) throws Exception {
MailTest test = new MailTest();
//发送邮件
// test.sendmail();
//通过代理发送邮件
test.sendMailByProxy();
} private void sendMailByProxy()throws Exception{
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
//设置代理服务器
Properties props = System.getProperties();
props.setProperty("proxySet", "true");
props.setProperty("socksProxyHost", "43.82.112.214");
props.setProperty("socksProxyPort", "1080");
props.setProperty("mail.smtp.host", "smtp.163.com");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.debug", "true");
props.setProperty("mail.transport.protocol", "smtp");
final String username = "****";
final String password = "****"; //使用验证
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,password);
}
});
MimeMessage message = new MimeMessage(session);
Address address = new InternetAddress("****");
Address toAaddress = new InternetAddress("****"); message.setFrom(address);
message.setRecipient(MimeMessage.RecipientType.TO, toAaddress);
message.setSubject("测试");
message.setText("test");
message.setSentDate(new Date());
Transport transport = session.getTransport();
transport.connect("smtp.163.com","****","****");
transport.sendMessage(message, new Address[] {new InternetAddress("****")});
// Transport.send(message);
System.out.println("邮件发送!");
transport.close(); }
public void sendmail() {/*
try {
String host = "smtp.gmail.com";
String from = "demo@163.com";
String to = "@163.com";
String username = "****";
String password = "****";
String body = "This is a test";
String subject = "Email Test";
SmtpAuth sa = new SmtpAuth();
sa.getuserinfo(username, password);
Session session;
MimeMessage message;
Properties props = System.getProperties();
props.setProperty("proxySet", "true");
props.setProperty("socksProxyHost", "43.82.218.50");
props.setProperty("socksProxyPort", "8080");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", host);
session = Session.getInstance(props, sa);
session.setDebug(true);
message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(
to));
message.setSubject(subject);
MimeBodyPart mbp = new MimeBodyPart();
mbp.setText(body);
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp);
message.setContent(mp);
message.setSentDate(new java.util.Date());
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.send(message);
} catch (MessagingException e) {
System.out.println("error" + e.getMessage());
}
*/} class SmtpAuth extends javax.mail.Authenticator {
private String user, password; public void getuserinfo(String getuser, String getpassword) {
user = getuser;
password = getpassword;
} protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(user, password);
}
}
}

依赖的jar包:http://download.csdn.net/detail/wu858773457/8699111

最新文章

  1. css样式之border
  2. IoC在ASP.NET Web API中的应用
  3. 查看cpu
  4. VS中基于对话框的MFC利用换肤改变边框颜色及格式
  5. Java集合源码学习(一)集合框架概览
  6. 为什么 1KB = 1024Byte???群里讨论。
  7. 关于IOS应用程序视图
  8. dw websites
  9. 使用nginx绑定域名,代理gitlab
  10. 一款简单射击游戏IOS源码
  11. 基础排序算法,java实现(快速,冒泡,选择,堆排序,插入)
  12. JqueryeasyUI选项卡选择判定更改内部Iframe地址
  13. python性能优化
  14. Linxu服务器上安装JDK小白教程
  15. 1-2 Spring 的基本使用
  16. Mybatis操作oracle数据库的一些坑
  17. .NET 术语
  18. [ Codeforces Round #549 (Div. 2)][D. The Beatles][exgcd]
  19. JS-详解算数运算符"+"
  20. Lodop打印条码二维码的一些设置

热门文章

  1. Linux下open与fopen的区别
  2. DevExpress SpreadSheet报表模板设置 z
  3. 算法:堆(Heap)
  4. struts2必要的包
  5. VMware虚拟机的三种联网方法及原理
  6. 【六】注入框架RoboGuice使用:(Singletons And ContextSingletons)
  7. iOS:删除、插入、移动单元格
  8. Java:IO流的综合用法(从键盘录入数据并打印在控制台上)
  9. go语言基础之数组比较和赋值
  10. WebSettings 文档 API 翻译 常用设置