在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

java发送邮件,带抄送和附件

2017-2-7 13:40| 发布者: zhangjf| 查看: 435| 评论: 0

摘要: package com.dailywork.util;import java.io.UnsupportedEncodingException;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.BodyPart ...
  1. package com.dailywork.util;
  2. import java.io.UnsupportedEncodingException;
  3. import java.util.Properties;
  4. import javax.activation.DataHandler;
  5. import javax.activation.FileDataSource;
  6. import javax.mail.BodyPart;
  7. import javax.mail.Message;
  8. import javax.mail.MessagingException;
  9. import javax.mail.Multipart;
  10. import javax.mail.Session;
  11. import javax.mail.Transport;
  12. import javax.mail.internet.InternetAddress;
  13. import javax.mail.internet.MimeBodyPart;
  14. import javax.mail.internet.MimeMessage;
  15. import javax.mail.internet.MimeMultipart;
  16. import javax.mail.internet.MimeUtility;
  17. public class EmailManager {
  18. private Properties props; //系统属性
  19. private Session session; //邮件会话对象
  20. private MimeMessage mimeMsg; //MIME邮件对象
  21. private Multipart mp; //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
  22. /**
  23. * Constructor
  24. * @param smtp 邮件发送服务器
  25. */
  26. public EmailManager(){
  27. props = System.getProperties();
  28. props.put("mail.smtp.auth","false");
  29. session = Session.getDefaultInstance(props, null);
  30. session.setDebug(true);
  31. mimeMsg = new MimeMessage(session);
  32. mp = new MimeMultipart();
  33. }
  34. /**
  35. * Constructor
  36. * @param smtp 邮件发送服务器
  37. */
  38. public EmailManager(String smtp, String username, String password){
  39. props = System.getProperties();
  40. props.put("mail.smtp.auth","true");
  41. props.put("mail.smtp.host", smtp);
  42. props.put("username", username);
  43. props.put("password", password);
  44. session = Session.getDefaultInstance(props, null);
  45. session.setDebug(true);
  46. mimeMsg = new MimeMessage(session);
  47. mp = new MimeMultipart();
  48. }
  49. /**
  50. * 发送邮件
  51. */
  52. public boolean sendMail(String from, String[] to, String[] copyto, String subject, String content, String filename) {
  53. try {
  54. //设置发信人
  55. mimeMsg.setFrom(new InternetAddress(from));
  56. //设置接收人
  57. for (int i = 0; i < to.length; i++) {
  58. mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to[i]));
  59. }
  60. //设置抄送人
  61. for (int i = 0; i < copyto.length; i++) {
  62. mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(copyto[i]));
  63. }
  64. //设置主题
  65. mimeMsg.setSubject(subject);
  66. //设置正文
  67. BodyPart bp = new MimeBodyPart();
  68. bp.setContent(content, "text/html;charset=utf-8");
  69. mp.addBodyPart(bp);
  70. //设置附件
  71. bp = new MimeBodyPart();
  72. FileDataSource fileds = new FileDataSource(filename);
  73. bp.setDataHandler(new DataHandler(fileds));
  74. bp.setFileName(MimeUtility.encodeText(fileds.getName(),"UTF-8","B"));
  75. mp.addBodyPart(bp);
  76. mimeMsg.setContent(mp);
  77. mimeMsg.saveChanges();
  78. //发送邮件
  79. if(props.get("mail.smtp.auth").equals("true")){
  80. Transport transport = session.getTransport("smtp");
  81. transport.connect((String)props.get("mail.smtp.host"), (String)props.get("username"), (String)props.get("password"));
  82. transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
  83. transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.CC));
  84. transport.close();
  85. }else{
  86. Transport.send(mimeMsg);
  87. }
  88. System.out.println("邮件发送成功");
  89. } catch (MessagingException e) {
  90. // TODO Auto-generated catch block
  91. e.printStackTrace();
  92. } catch (UnsupportedEncodingException e) {
  93. // TODO Auto-generated catch block
  94. e.printStackTrace();
  95. }
  96. return true;
  97. }
  98. public static void main(String[] args){
  99. String smtp = "smtp.163.com";
  100. String username="xxx@163.com";
  101. String password="xxx";
  102. String from = "xxx@163.com";
  103. String[] to = {"xxx@qq.com"};
  104. String[] copyto = {"xxx@qq.com"};
  105. String subject = "主题";
  106. String content = "邮件内容";
  107. String filename = "D:\xxx.txt";
  108. EmailManager email = new EmailManager(smtp, username, password);
  109. email.sendMail(from, to, copyto, subject, content, filename);
  110. }
  111. }
复制代码





















来自: http://my.oschina.net/chenhao901007/blog/373883

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-9 05:20

Copyright 2015-2025 djqfx

返回顶部