SendMail.java
上传用户:liangcc
上传日期:2019-05-24
资源大小:4412k
文件大小:3k
源码类别:

WEB邮件程序

开发平台:

Java

  1. package com.softeem.webmail.send;
  2. import java.util.Date;
  3. import java.util.Properties;
  4. import javax.activation.DataHandler;
  5. import javax.activation.FileDataSource;
  6. import javax.mail.Authenticator;
  7. import javax.mail.Message;
  8. import javax.mail.MessagingException;
  9. import javax.mail.Multipart;
  10. import javax.mail.PasswordAuthentication;
  11. import javax.mail.Session;
  12. import javax.mail.Transport;
  13. import javax.mail.internet.InternetAddress;
  14. import javax.mail.internet.MimeBodyPart;
  15. import javax.mail.internet.MimeMessage;
  16. import javax.mail.internet.MimeMultipart;
  17. import com.softeem.struts.form.WriteForm;
  18. public class SendMail {
  19. public void sendmail(WriteForm wf, String name, String password) {
  20. Properties p = new Properties();
  21. p.setProperty("mail.smtp.auth", "true");
  22. p.setProperty("mail.transport.protocol", "smtp");
  23. p.setProperty("maildebug", "true");
  24. p.setProperty("mail.host", "smtp.sina.com");
  25. p.setProperty("mail.from", name);
  26. final String j = name;
  27. final String k = password;
  28. Session s = Session.getDefaultInstance(p, new Authenticator() {
  29. @Override
  30. protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
  31. // TODO Auto-generated method stub
  32. return new PasswordAuthentication(j, k);
  33. }
  34. });
  35. if (wf != null) {
  36. try {
  37. Message message = new MimeMessage(s);
  38. message.setFrom();
  39. message.setSubject(wf.getSubject());
  40. message.setText(wf.getRichedit());
  41. message.setSentDate(new Date());
  42. message.addRecipients(Message.RecipientType.TO,
  43. new InternetAddress[] { new InternetAddress(wf
  44. .getToUser()) });
  45. if (wf.getCopyTo() != null && wf.getCopyTo().length() > 0) {
  46. System.out.println(wf.getCopyTo().length());
  47. String str[] = wf.getCopyTo().split(",");
  48. for (String stri : str) {
  49. System.out.println(stri);
  50. message.addRecipients(Message.RecipientType.CC,
  51. new InternetAddress[] { new InternetAddress(
  52. stri) });
  53. }
  54. }
  55. if (wf.getSecretTo() != null && wf.getSecretTo().length() > 0) {
  56. String str[] = wf.getCopyTo().split(",");
  57. for (String stri : str) {
  58. message.addRecipients(Message.RecipientType.BCC,
  59. new InternetAddress[] { new InternetAddress(
  60. stri) });
  61. }
  62. }
  63. // 发附件
  64. if (wf.getFiles() != null) {
  65. String[] file = wf.getFiles().split("&&");
  66. if (file.length > 0) {// 有附件
  67. for (int i = 0; i < file.length; i++) {
  68. if (file[i] != null && file[i].length() > 0) {
  69. System.out.println(file[i]);
  70. MimeBodyPart mbp = new MimeBodyPart();
  71. Multipart mp = new MimeMultipart();
  72. FileDataSource fds = new FileDataSource(file[i]); // 得到数据源
  73. mbp.setDataHandler(new DataHandler(fds)); // 得到附件本身并至入BodyPart
  74. sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
  75. String fileName = "=?GBK?B?"
  76. + enc.encode(fds.getName().getBytes())
  77. + "?=";
  78. mbp.setFileName(fileName); // 得到文件名同样至入BodyPart
  79. mp.addBodyPart(mbp);
  80. }
  81. }
  82. file = null;
  83. }
  84. }
  85. Transport tran = s.getTransport();
  86. tran.connect("smtp.sina.com", 25, name, password);
  87. tran.send(message);
  88. tran.close();
  89. } catch (MessagingException e) {
  90. e.printStackTrace();
  91. }
  92. }
  93. }
  94. }