javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件) 4年前

  1. private Session session;

  2.    private Transport transport;

  3.    private String mailHost = "";

  4.    private String sender_username = "";

  5.    private String sender_password = "";

  6.    private String contentPart_Type = "";

  7.    private Properties properties = new Properties();

  8.    /*

  9. * 初始化方法

  10. */

  11.    public JavaMailWithAttachment() {

  12.        try {

  13.         FileInputStream is=new FileInputStream("E:/workspace1.6/ICRM-H5/src/mailServer.properties");

  14.            properties.load(is);  

  15.            this.mailHost = properties.getProperty("mail.smtp.host");

  16.            this.sender_username = properties.getProperty("mail.sender.username");

  17.            this.sender_password = properties.getProperty("mail.sender.password");

  18.            this.contentPart_Type = properties.getProperty("mail.contentPart.type");

  19.        } catch (IOException e) {

  20.            e.printStackTrace();  

  21.        }  

  22.        session = Session.getInstance(properties);  

  23.        session.setDebug(true); //开启后有调试信息,发布时关闭

  24.        message = new MimeMessage(session);

  25.    }  

  26.    /**

  27. * 发送邮件

  28. * @param subject

  29. *               邮件主题

  30. * @param sendHtml

  31. *               邮件内容

  32. * @param toUser

  33. *               收件人  多个时参数形式  :  "xxx@xxx.com,xxx@xxx.com,xxx@xxx.com"

  34. * @param ccUser

  35. *               抄送人   同上

  36. * @param bccUser

  37. *               密送人   同上

  38. * @param attachment

  39. *               附件

  40. */

  41. public void doSendHtmlEmail(String subject, String sendHtml,

  42.         String  toUser, String ccUser, String bccUser, File [] attachment){  

  43.     try {

  44.         // 发件人

  45.            InternetAddress from = new InternetAddress(sender_username);

  46.            message.setFrom(from);  

  47.            // 设置多个收件人地址

  48.            if(null != toUser && !toUser.isEmpty()){

  49.             @SuppressWarnings("static-access")

  50.             InternetAddress[] internetAddressTo = new InternetAddress().parse(toUser);

  51.             message.setRecipients(Message.RecipientType.TO, internetAddressTo);  

  52.            }  

  53.            // 设置多个抄送地址

  54.            if(null != ccUser && !ccUser.isEmpty()){

  55.             @SuppressWarnings("static-access")

  56.             InternetAddress[] internetAddressCC = new InternetAddress().parse(ccUser);

  57.             message.setRecipients(Message.RecipientType.CC, internetAddressCC);  

  58.            }  

  59.            // 设置多个密送地址

  60.            if(null != bccUser && !bccUser.isEmpty()){

  61.             @SuppressWarnings("static-access")

  62.             InternetAddress[] internetAddressBCC = new InternetAddress().parse(bccUser);

  63.             message.setRecipients(Message.RecipientType.BCC, internetAddressBCC);  

  64.            }  

  65.            // 发送日期

  66.            message.setSentDate(new Date());

  67.            // 邮件主题

  68.            message.setSubject(subject);  

  69.            // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件

  70.            Multipart multipart = new MimeMultipart();

  71.            // 添加邮件正文

  72.            BodyPart contentPart = new MimeBodyPart();

  73.            contentPart.setContent(sendHtml, contentPart_Type);  

  74.            multipart.addBodyPart(contentPart);  

  75.            BodyPart attachmentBodyPart = null;

  76.            // 添加附件的内容

  77.            if (null != attachment && attachment.length != 0) {

  78.             for (File file : attachment) {

  79.                 attachmentBodyPart = new MimeBodyPart();

  80.                 DataSource source = new FileDataSource(file);

  81.                 attachmentBodyPart.setDataHandler(new DataHandler(source));

  82.                 //MimeUtility.encodeWord可以避免文件名乱码

  83.                    attachmentBodyPart.setFileName(MimeUtility.encodeWord(file.getName()));  

  84.                    multipart.addBodyPart(attachmentBodyPart);  

  85.             }  

  86.            }  

  87.            // 将multipart对象放到message中

  88.            message.setContent(multipart);  

  89.            // 保存邮件

  90.            message.saveChanges();  

  91.            // smtp验证

  92.            transport = session.getTransport("smtp");

  93.            transport.connect(mailHost, sender_username, sender_password);  

  94.            // 发送

  95.            transport.sendMessage(message, message.getAllRecipients());  

  96.            System.out.println("发送成功!");

  97.     } catch (Exception e) {

  98.         e.printStackTrace();  

  99.     } finally {

  100.         if (transport != null) {

  101.                try {

  102.                    transport.close();  

  103.                } catch (MessagingException e) {

  104.                    e.printStackTrace();  

  105.                }  

  106.            }  

  107.     }  

  108.    }

野生花生
这么好的一位少年,那么他喜欢着的少女,得是多好的姑娘啊?
2
发布数
0
关注者
1079
累计阅读

热门教程文档

Swift
54小节
Dart
35小节
CSS
33小节
Djiango
17小节
Objective-C
29小节
广告