JavaMail发送邮件_第1页
JavaMail发送邮件_第2页
JavaMail发送邮件_第3页
JavaMail发送邮件_第4页
JavaMail发送邮件_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、使用JavaMail发送邮件需要用到mail.jar和activtion.jar两个包。该类实现了较完整的邮件发送功能,包括以HTML格式发送,添加附件和抄送人。下面是具体的代码:Mail.java: Java代码  1. package cn.cgw.util.mail;  2.   3. import java.util.Properties;  4.   5. import javax.activation.DataHandler; 

2、60;6. import javax.activation.FileDataSource;  7. import javax.mail.Address;  8. import javax.mail.BodyPart;  9. import javax.mail.Message;  10. import javax.mail.Multipart;  11. import javax.mail.Session;  12.

3、 import javax.mail.Transport;  13. import ernet.InternetAddress;  14. import ernet.MimeBodyPart;  15. import ernet.MimeMessage;  16. import ernet.MimeMultipart;  17. 

4、60; 18.   19. public class Mail    20.   21.     private MimeMessage mimeMsg; /MIME邮件对象   22.     private Session session; /邮件会话对象   23.  &#

5、160;  private Properties props; /系统属性   24.     private boolean needAuth = false; /smtp是否需要认证   25.     /smtp认证用户名和密码   26.     private Stri

6、ng username;   27.     private String password;   28.     private Multipart mp; /Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象   29.        30. 

7、60;   /* 31.      * Constructor 32.      * param smtp 邮件发送服务器 33.      */  34.     public Mail(String smtp)   35.  

8、       setSmtpHost(smtp);   36.         createMimeMessage();   37.        38.   39.     /* 40.      

9、* 设置邮件发送服务器 41.      * param hostName String  42.      */  43.     public void setSmtpHost(String hostName)    44.       

10、;  System.out.println("设置系统属性:mail.smtp.host = "+hostName);   45.         if(props = null)  46.             props = System.ge

11、tProperties(); /获得系统属性对象    47.         props.put("mail.smtp.host",hostName); /设置SMTP主机   48.        49.   50.   51.     /* 5

12、2.      * 创建MIME邮件对象   53.      * return 54.      */  55.     public boolean createMimeMessage()   56.       &

13、#160;57.         try    58.             System.out.println("准备获取邮件会话对象!");   59.             se

14、ssion = Session.getDefaultInstance(props,null); /获得邮件会话对象   60.            61.         catch(Exception e)   62.        &

15、#160;    System.err.println("获取邮件会话对象时发生错误!"+e);   63.             return false;   64.            65.    

16、   66.         System.out.println("准备创建MIME邮件对象!");   67.         try    68.             mimeMsg

17、0;= new MimeMessage(session); /创建MIME邮件对象   69.             mp = new MimeMultipart();   70.           71.     

18、        return true;   72.          catch(Exception e)   73.             System.err.println("创建MIME邮件对象失败!&quo

19、t;+e);   74.             return false;   75.            76.          77.      &#

20、160;78.     /* 79.      * 设置SMTP是否需要验证 80.      * param need 81.      */  82.     public void setNeedAuth(boolean need)  

21、;  83.         System.out.println("设置smtp身份认证:mail.smtp.auth = "+need);   84.         if(props = null) props = System.getProperties();  

22、0;85.         if(need)   86.             props.put("mail.smtp.auth","true");   87.         else  

23、60;88.             props.put("mail.smtp.auth","false");   89.            90.        91.   92.   

24、;  /* 93.      * 设置用户名和密码 94.      * param name 95.      * param pass 96.      */  97.     public void se

25、tNamePass(String name,String pass)    98.         username = name;   99.         password = pass;   100.       

26、; 101.   102.     /* 103.      * 设置邮件主题 104.      * param mailSubject 105.      * return 106.      */  107.  &

27、#160;  public boolean setSubject(String mailSubject)    108.         System.out.println("设置邮件主题!");   109.         try   110.  

28、60;          mimeMsg.setSubject(mailSubject);   111.             return true;   112.            113.

29、         catch(Exception e)    114.             System.err.println("设置邮件主题发生错误!");   115.           

30、  return false;   116.            117.       118.       119.     /*  120.      * 设置邮件正文 12

31、1.      * param mailBody String  122.      */   123.     public boolean setBody(String mailBody)    124.         tr

32、y   125.             BodyPart bp = new MimeBodyPart();   126.             bp.setContent(""+mailBody,"text/html;char

33、set=GBK");   127.             mp.addBodyPart(bp);   128.           129.             return 

34、;true;   130.          catch(Exception e)   131.         System.err.println("设置邮件正文时发生错误!"+e);   132.         retur

35、n false;   133.            134.        135.     /*  136.      * 添加附件 137.      * param fil

36、ename String  138.      */   139.     public boolean addFileAffix(String filename)    140.       141.         System.out

37、.println("增加邮件附件:"+filename);   142.         try   143.             BodyPart bp = new MimeBodyPart();   144.   

38、0;         FileDataSource fileds = new FileDataSource(filename);   145.             bp.setDataHandler(new DataHandler(fileds);   146.  

39、           bp.setFileName(fileds.getName();   147.               148.             mp.addBodyPart(bp)

40、;   149.               150.             return true;   151.          catch(Exception 

41、e)   152.             System.err.println("增加邮件附件:"+filename+"发生错误!"+e);   153.             return false;   154

42、.            155.        156.       157.     /*  158.      * 设置发信人 159.      * param&

43、#160;from String  160.      */   161.     public boolean setFrom(String from)    162.         System.out.println("设置发信人!");   

44、;163.         try   164.             mimeMsg.setFrom(new InternetAddress(from); /设置发信人   165.            

45、 return true;   166.          catch(Exception e)    167.             return false;   168.       

46、;     169.        170.     /*  171.      * 设置收信人 172.      * param to String  173.      */ 

47、0; 174.     public boolean setTo(String to)   175.         if(to = null)return false;   176.         try   177.  &#

48、160;          mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to);   178.             return true;   179.     

49、0;    catch(Exception e)    180.             return false;   181.              182.     &#

50、160;  183.       184.     /*  185.      * 设置抄送人 186.      * param copyto String   187.      */   188

51、.     public boolean setCopyTo(String copyto)   189.        190.         if(copyto = null)return false;   191.      

52、0;  try   192.         mimeMsg.setRecipients(Message.RecipientType.CC,(Address)InternetAddress.parse(copyto);   193.         return true;   194.   

53、60;        195.         catch(Exception e)   196.          return false;    197.        198. &#

54、160;     199.     /*  200.      * 发送邮件 201.      */   202.     public boolean sendOut()   203.      

55、  204.         try   205.             mimeMsg.setContent(mp);   206.             mimeMsg.saveChanges

56、();   207.             System.out.println("正在发送邮件.");   208.               209.         &#

57、160;   Session mailSession = Session.getInstance(props,null);   210.             Transport transport = mailSession.getTransport("smtp");   211.   

58、;          transport.connect(String)props.get("mail.smtp.host"),username,password);   212.             transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.Re

59、cipientType.TO);   213.             transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC);   214.             /transport.send(

60、mimeMsg);   215.               216.             System.out.println("发送邮件成功!");   217.        &#

61、160;    transport.close();   218.               219.             return true;   220.      

62、    catch(Exception e)    221.             System.err.println("邮件发送失败!"+e);   222.             return fal

63、se;   223.            224.        225.   226.     /* 227.      * 调用sendOut方法完成邮件发送 228.      * 

64、param smtp 229.      * param from 230.      * param to 231.      * param subject 232.      * param content 233.    

65、  * param username 234.      * param password 235.      * return boolean 236.      */  237.     public static boolean send(St

66、ring smtp,String from,String to,String subject,String content,String username,String password)   238.         Mail theMail = new Mail(smtp);  239.      

67、60;  theMail.setNeedAuth(true); /需要验证  240.           241.         if(!theMail.setSubject(subject) return false;  242.        

68、0;if(!theMail.setBody(content) return false;  243.         if(!theMail.setTo(to) return false;  244.         if(!theMail.setFrom(from) return false;  245.  

69、;       theMail.setNamePass(username,password);  246.           247.         if(!theMail.sendOut() return false;  248.     &#

70、160;   return true;  249.       250.       251.     /* 252.      * 调用sendOut方法完成邮件发送,带抄送 253.      * param smtp

71、0;254.      * param from 255.      * param to 256.      * param copyto 257.      * param subject 258.      * p

72、aram content 259.      * param username 260.      * param password 261.      * return boolean 262.      */  263.    

73、0;public static boolean sendAndCc(String smtp,String from,String to,String copyto,String subject,String content,String username,String password)   264.         Mail theMail = 

74、new Mail(smtp);  265.         theMail.setNeedAuth(true); /需要验证  266.           267.         if(!theMail.setSubject(subject) return 

75、;false;  268.         if(!theMail.setBody(content) return false;  269.         if(!theMail.setTo(to) return false;  270.         i

76、f(!theMail.setCopyTo(copyto) return false;  271.         if(!theMail.setFrom(from) return false;  272.         theMail.setNamePass(username,password);  273.   &

77、#160;       274.         if(!theMail.sendOut() return false;  275.         return true;  276.       277.   

78、60;   278.     /* 279.      * 调用sendOut方法完成邮件发送,带附件 280.      * param smtp 281.      * param from 282.      * param

79、 to 283.      * param subject 284.      * param content 285.      * param username 286.      * param password 287.   

80、60;  * param filename 附件路径 288.      * return 289.      */  290.     public static boolean send(String smtp,String from,String to,String subject,

81、String content,String username,String password,String filename)   291.         Mail theMail = new Mail(smtp);  292.         theMail.setNeedAuth(true); 

82、;/需要验证  293.           294.         if(!theMail.setSubject(subject) return false;  295.         if(!theMail.setBody(content) return

83、0;false;  296.         if(!theMail.addFileAffix(filename) return false;   297.         if(!theMail.setTo(to) return false;  298.       

84、  if(!theMail.setFrom(from) return false;  299.         theMail.setNamePass(username,password);  300.           301.         if(!t

85、heMail.sendOut() return false;  302.         return true;  303.       304.       305.     /* 306.      * 调用sen

86、dOut方法完成邮件发送,带附件和抄送 307.      * param smtp 308.      * param from 309.      * param to 310.      * param copyto 311.      * param subject 312.      * param content 313.      * param username 314.      * param password 315.      * param f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论