java发送邮件带附件

来源:互联网 发布:电梯优化问题奇偶 编辑:程序博客网 时间:2024/05/16 19:17
  1. mport java.io.File;  
  2. import java.util.Date;  
  3. import java.util.Properties;  
  4.   
  5. import javax.activation.DataHandler;  
  6. import javax.activation.DataSource;  
  7. import javax.activation.FileDataSource;  
  8. import javax.mail.BodyPart;  
  9. import javax.mail.Message;  
  10. import javax.mail.Multipart;  
  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.   
  18. public class AnnexMailService {  
  19.       
  20.     public static boolean sendMail(String subject, String toMail,  
  21.             String content, String... files) {  
  22.         boolean isFlag = false;  
  23.         try {  
  24.   
  25.             String smtpFromMail = "2603653389@qq.com";  //账号  
  26.             String pwd = "huangfei"//密码  
  27.             int port = 25//端口  
  28.             String host = "smtp.qq.com"//端口  
  29.   
  30.             Properties props = new Properties();  
  31.             props.put("mail.smtp.host", host);  
  32.             props.put("mail.smtp.auth""true");  
  33.             Session session = Session.getDefaultInstance(props);  
  34.             session.setDebug(false);  
  35.   
  36.             MimeMessage message = new MimeMessage(session);  
  37.             try {  
  38.                 message.setFrom(new InternetAddress(smtpFromMail, "QQ邮件测试"));  
  39.                 message.addRecipient(Message.RecipientType.TO,  
  40.                         new InternetAddress(toMail));  
  41.                 message.setSubject(subject);  
  42.                 message.addHeader("charset""UTF-8");  
  43.                   
  44.                 /*添加正文内容*/  
  45.                 Multipart multipart = new MimeMultipart();  
  46.                 BodyPart contentPart = new MimeBodyPart();  
  47.                 contentPart.setText(content);  
  48.   
  49.                 contentPart.setHeader("Content-Type""text/html; charset=GBK");  
  50.                 multipart.addBodyPart(contentPart);  
  51.                   
  52.                 /*添加附件*/  
  53.                 for (String file : files) {  
  54.                     File usFile = new File(file);  
  55.                     MimeBodyPart fileBody = new MimeBodyPart();  
  56.                     DataSource source = new FileDataSource(file);  
  57.                     fileBody.setDataHandler(new DataHandler(source));  
  58.                     sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();  
  59.                     fileBody.setFileName("=?GBK?B?"  
  60.                             + enc.encode(usFile.getName().getBytes()) + "?=");  
  61.                     multipart.addBodyPart(fileBody);  
  62.                 }  
  63.   
  64.                 message.setContent(multipart);  
  65.                 message.setSentDate(new Date());  
  66.                 message.saveChanges();  
  67.                 Transport transport = session.getTransport("smtp");  
  68.   
  69.                 transport.connect(host, port, smtpFromMail, pwd);  
  70.                 transport.sendMessage(message, message.getAllRecipients());  
  71.                 transport.close();  
  72.                 isFlag = true;  
  73.             } catch (Exception e) {  
  74.                 isFlag = false;  
  75.             }  
  76.         } catch (Exception e) {  
  77.             e.printStackTrace();  
  78.         }  
  79.         return isFlag;  
  80.     }  
  81.   
  82.     public static void main(String[] args) {  
  83.         AnnexMailService.sendMail("你好""506495269@qq.com""朋友好久不见" ,   
  84.                 "C:/中文.jpg");  
0 0
原创粉丝点击