代码详解java发送邮件

来源:互联网 发布:linux xampp 启动界面 编辑:程序博客网 时间:2024/06/05 10:02

转自:http://blog.csdn.net/duanml61/article/details/8306290


不废话了,今天早上写了个java发送邮件服务类,直接看源码:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package dec;  
  2.   
  3. import java.util.Properties;  
  4. import javax.mail.Message;  
  5. import javax.mail.MessagingException;  
  6. import javax.mail.Session;  
  7. import javax.mail.Transport;  
  8. import javax.mail.internet.AddressException;  
  9. import javax.mail.internet.InternetAddress;  
  10. import javax.mail.internet.MimeMessage;  
  11. /** 
  12.  *  
  13.  *  
  14.  * <p>Title: Java发送邮件测试类 /p> 
  15.  * 
  16.  * <p>Description: 示例 业务类</p> 
  17.  * 
  18.  * <p>Copyright: Copyright (c) 2012</p> 
  19.  * 
  20.  * 
  21.  * @author dml@2012-12-17 
  22.  * @version 1.0 
  23.  */  
  24.   
  25. /**************************************************************** 
  26.  * 对QQ邮箱使用(对于其他的使用类似的你应该也会更改了) 首先把QQ邮箱的POP3 SMTP打开 首先确定你的网络正常、非代理 
  27.  * 【确定你的QQ邮箱开启了SMTP】!!!! 如果没有开启,那么这样设置下 设置->账户 --在下面-- 把这个选上 [√]SMTP发信后保存到服务器 
  28.  ****************************************************************/  
  29. public class JavaMail {  
  30.   
  31.     // 设置服务器  
  32.     private static String KEY_SMTP = "mail.smtp.host";  
  33.     private static String VALUE_SMTP = "smtp.qq.com";  
  34.     // 服务器验证  
  35.     private static String KEY_PROPS = "mail.smtp.auth";  
  36.     private static boolean VALUE_PROPS = true;  
  37.     // 发件人用户名、密码  
  38.     private String SEND_USER = "********@qq.com";  
  39.     private String SEND_UNAME = "********";  
  40.     private String SEND_PWD = "*******";  
  41.     // 建立会话  
  42.     private MimeMessage message;  
  43.     private Session s;  
  44.   
  45.     /* 
  46.      * 初始化方法 
  47.      */  
  48.     public JavaMail() {  
  49.         Properties props = System.getProperties();  
  50.         props.setProperty(KEY_SMTP, VALUE_SMTP);  
  51.         props.put(KEY_PROPS, VALUE_PROPS);  
  52.         s = Session.getInstance(props);  
  53.         /* s.setDebug(true);开启后有调试信息 */  
  54.         message = new MimeMessage(s);  
  55.     }  
  56.   
  57.     /** 
  58.      * 发送邮件 
  59.      *  
  60.      * @param headName 
  61.      *            邮件头文件名 
  62.      * @param sendHtml 
  63.      *            邮件内容 
  64.      * @param receiveUser 
  65.      *            收件人地址 
  66.      */  
  67.     public void doSendHtmlEmail(String headName, String sendHtml,  
  68.             String receiveUser) {  
  69.         try {  
  70.             // 发件人  
  71.             InternetAddress from = new InternetAddress(SEND_USER);  
  72.             message.setFrom(from);  
  73.             // 收件人  
  74.             InternetAddress to = new InternetAddress(receiveUser);  
  75.             message.setRecipient(Message.RecipientType.TO, to);  
  76.             // 邮件标题  
  77.             message.setSubject(headName);  
  78.             String content = sendHtml.toString();  
  79.             // 邮件内容,也可以使纯文本"text/plain"  
  80.             message.setContent(content, "text/html;charset=GBK");  
  81.             message.saveChanges();  
  82.             Transport transport = s.getTransport("smtp");  
  83.             // smtp验证,就是你用来发邮件的邮箱用户名密码  
  84.             transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);  
  85.             // 发送  
  86.             transport.sendMessage(message, message.getAllRecipients());  
  87.             transport.close();  
  88.             System.out.println("send success!");  
  89.         } catch (AddressException e) {  
  90.             // TODO Auto-generated catch block  
  91.             e.printStackTrace();  
  92.         } catch (MessagingException e) {  
  93.             e.printStackTrace();  
  94.         }  
  95.     }  
  96.   
  97.     public static void main(String[] args) {  
  98.         JavaMail se = new JavaMail();  
  99.         se.doSendHtmlEmail("邮件头文件名""邮件内容""*******@***.com");  
  100.     }  
  101. }  

所需jar包只有一个,mail.jar

需要注意的是,执行程序前需要保证邮箱开启了SMTP,本例使用QQ邮箱进行测试,设置路径

QQ Mail Settings->Account->POP3/IMAP/SMTP   Service     选中

0 0
原创粉丝点击