Java发邮件

Java发邮件工具类:

首先要导入两个包:mailapi.jar、smtp.jar

 1 package com.foster.utils;

 2 

 3 import java.util.Properties;

 4 

 5 import javax.activation.DataHandler;

 6 import javax.activation.FileDataSource;

 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 

17 public final class EmailUtil {

18     public static void  sendEmailWithAttachment(String to,String cc,String from,String subject,String content,String attachment){

19         String host = "10.0.100.165";

20     

21         //设置发送邮件的主机

22         Properties props = System.getProperties();

23         props.put("mail.smtp.host", host);

24         

25         //获取一个邮件会话

26         Session session = Session.getInstance(props, null);

27 

28         try 

29         {

30             // 创建一个邮件消息

31             MimeMessage msg = new MimeMessage(session);

32             //设置发件人地址

33             msg.setFrom(new InternetAddress(from));

34             

35             //分离并设置收件人地址

36             String [] aryStr = to.split(",");        

37             InternetAddress[] address = new InternetAddress[aryStr.length]; 

38             for (int i=0;i<aryStr.length;i++){                

39                 address[i] = new InternetAddress(aryStr[i]);

40             }        

41             msg.setRecipients(Message.RecipientType.TO, address);

42             

43             //分离并设置抄送地址

44             if ((cc!=null) && (!"".equals(cc)) ){

45                 System.out.println(cc);

46                 aryStr = cc.split(",");

47                 InternetAddress[] address_cc = new InternetAddress[aryStr.length]; 

48                 for (int i=0;i<aryStr.length;i++){

49                     address_cc[i] = new InternetAddress(aryStr[i]);

50                 }                    

51                 msg.setRecipients(Message.RecipientType.CC, address_cc);

52             }

53             

54             //设置邮件消息的主题

55             msg.setSubject(subject);

56             

57             Multipart mp = new MimeMultipart();

58             

59             //追加消息内容的第一部分:文本内容

60             MimeBodyPart mbp1 = new MimeBodyPart();

61             mbp1.setText(content);

62             mp.addBodyPart(mbp1);

63 

64             //追加消息内容的第二部分:附件

65             if ((attachment!=null) && (!"".equals(attachment))){

66                 MimeBodyPart mbp2 = new MimeBodyPart();

67                 FileDataSource fds = new FileDataSource(attachment);

68                 mbp2.setDataHandler(new DataHandler(fds));

69                 mbp2.setFileName(fds.getName());

70                 mp.addBodyPart(mbp2);                

71             }

72 

73             //设置邮件消息的内容及类型

74             msg.setContent(mp,"text/html");

75             

76             //发送邮件消息

77             Transport.send(msg);

78         } 

79         catch (MessagingException mex) 

80         {

81             mex.printStackTrace();

82             Exception ex = null;

83             if ((ex = mex.getNextException()) != null) {

84                 ex.printStackTrace();

85             }

86         }

87     }

88     

89 }

host:主机地址,是公司内部的邮件服务器。
测试类:

1 public class Test {

2 

3     public static void main(String[] args) {

4         EmailUtil.sendEmailWithAttachment("[email protected]", "[email protected]", "[email protected]", "test", "hello", "c:\\test.zip");

5     }

6 }

 

你可能感兴趣的:(java)