您的位置:首页 > 编程语言 > Java开发

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

2017-05-31 22:26 519 查看


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

JavaMailWithAttachment.Java

[java] view
plain copy

<span style="font-family: Arial, Helvetica, sans-serif;">private MimeMessage message;</span>  

[java] view
plain copy

   private Session session;  

   private Transport transport;  

  

   private String mailHost = "";  

   private String sender_username = "";  

   private String sender_password = "";  

   private String contentPart_Type = "";  

  

   private Properties properties = new Properties();  

     

   /* 

    * 初始化方法 

    */  

   public JavaMailWithAttachment() {  

       try {  

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

           properties.load(is);  

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

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

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

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

       } catch (IOException e) {  

           e.printStackTrace();  

       }  

  

       session = Session.getInstance(properties);  

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

       message = new MimeMessage(session);  

   }  

  

     

   /** 

    * 发送邮件 

    * @param subject 

    *               邮件主题 

    * @param sendHtml 

    *               邮件内容 

    * @param toUser 

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

    * @param ccUser 

    *               抄送人   同上 

    * @param bccUser 

    *               密送人   同上 

    * @param attachment 

    *               附件 

    */  

public void doSendHtmlEmail(String subject, String sendHtml,  

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

    try {  

        // 发件人  

           InternetAddress from = new InternetAddress(sender_username);  

           message.setFrom(from);  

             

           // 设置多个收件人地址  

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

            @SuppressWarnings("static-access")  

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

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

           }  

             

           // 设置多个抄送地址  

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

            @SuppressWarnings("static-access")  

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

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

           }  

             

           // 设置多个密送地址  

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

            @SuppressWarnings("static-access")  

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

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

           }  

             

           // 发送日期  

           message.setSentDate(new Date());   

             

           // 邮件主题  

           message.setSubject(subject);  

             

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

           Multipart multipart = new MimeMultipart();  

             

           // 添加邮件正文  

           BodyPart contentPart = new MimeBodyPart();  

           contentPart.setContent(sendHtml, contentPart_Type);  

           multipart.addBodyPart(contentPart);  

             

           BodyPart attachmentBodyPart = null;  

           // 添加附件的内容  

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

            for (File file : attachment) {  

                attachmentBodyPart = new MimeBodyPart();  

                  

                DataSource source = new FileDataSource(file);  

                attachmentBodyPart.setDataHandler(new DataHandler(source));  

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

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

                   multipart.addBodyPart(attachmentBodyPart);  

            }  

           }  

             

           // 将multipart对象放到message中  

           message.setContent(multipart);  

             

           // 保存邮件  

           message.saveChanges();  

             

           // smtp验证  

           transport = session.getTransport("smtp");  

           transport.connect(mailHost, sender_username, sender_password);  

             

           // 发送  

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

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

    } catch (Exception e) {  

        e.printStackTrace();  

    } finally {  

        if (transport != null) {  

               try {  

                   transport.close();  

               } catch (MessagingException e) {  

                   e.printStackTrace();  

               }  

           }  

    }  

   }  

mailServer.properties:

[html] view
plain copy

mail.smtp.host = smtp.ym.163.com  

  

mail.smtp.auth = true  

  

mail.sender.username = xxxx@xxxx.com  

  

mail.sender.password = xxxxx  

  

mail.contentPart.type = text/html;charset=UTF-8  

由于javaMail需要一个Properties来注册Session,因此创建一个Properties来写入javaMail所需要的注册信息

mail.smtp.host 发送方的smtp服务器,现在默认的是网易企业邮箱的smtp服务器,可以根据不同的邮箱进行更改。

mail.smtp.auth 向smtp服务器提交认证

mail.sender.username 发送者邮箱

mail.smtp.password 发送者邮箱密码

还需要两个jar包:activation.jar ,mail.jar     

下载地址:http://download.csdn.NET/detail/qq741437836/9600110
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: