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

来源:互联网 发布:mac air 视网膜屏 编辑:程序博客网 时间:2024/06/12 00:41

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


JavaMailWithAttachment.Java:

[java] view plain copy
  1. <span style="font-family: Arial, Helvetica, sans-serif;">private MimeMessage message;</span>  

[java] view plain copy
  1.    private Session session;  
  2.    private Transport transport;  
  3.   
  4.    private String mailHost = "";  
  5.    private String sender_username = "";  
  6.    private String sender_password = "";  
  7.    private String contentPart_Type = "";  
  8.   
  9.    private Properties properties = new Properties();  
  10.      
  11.    /* 
  12.     * 初始化方法 
  13.     */  
  14.    public JavaMailWithAttachment() {  
  15.        try {  
  16.         FileInputStream is=new FileInputStream("E:/workspace1.6/ICRM-H5/src/mailServer.properties");  
  17.            properties.load(is);  
  18.            this.mailHost = properties.getProperty("mail.smtp.host");  
  19.            this.sender_username = properties.getProperty("mail.sender.username");  
  20.            this.sender_password = properties.getProperty("mail.sender.password");  
  21.            this.contentPart_Type = properties.getProperty("mail.contentPart.type");  
  22.        } catch (IOException e) {  
  23.            e.printStackTrace();  
  24.        }  
  25.   
  26.        session = Session.getInstance(properties);  
  27.        session.setDebug(true); //开启后有调试信息,发布时关闭  
  28.        message = new MimeMessage(session);  
  29.    }  
  30.   
  31.      
  32.    /** 
  33.     * 发送邮件 
  34.     * @param subject 
  35.     *               邮件主题 
  36.     * @param sendHtml 
  37.     *               邮件内容 
  38.     * @param toUser 
  39.     *               收件人  多个时参数形式  :  "xxx@xxx.com,xxx@xxx.com,xxx@xxx.com" 
  40.     * @param ccUser 
  41.     *               抄送人   同上 
  42.     * @param bccUser 
  43.     *               密送人   同上 
  44.     * @param attachment 
  45.     *               附件 
  46.     */  
  47. public void doSendHtmlEmail(String subject, String sendHtml,  
  48.         String  toUser, String ccUser, String bccUser, File [] attachment){  
  49.     try {  
  50.         // 发件人  
  51.            InternetAddress from = new InternetAddress(sender_username);  
  52.            message.setFrom(from);  
  53.              
  54.            // 设置多个收件人地址  
  55.            if(null != toUser && !toUser.isEmpty()){  
  56.             @SuppressWarnings("static-access")  
  57.             InternetAddress[] internetAddressTo = new InternetAddress().parse(toUser);  
  58.             message.setRecipients(Message.RecipientType.TO, internetAddressTo);  
  59.            }  
  60.              
  61.            // 设置多个抄送地址  
  62.            if(null != ccUser && !ccUser.isEmpty()){  
  63.             @SuppressWarnings("static-access")  
  64.             InternetAddress[] internetAddressCC = new InternetAddress().parse(ccUser);  
  65.             message.setRecipients(Message.RecipientType.CC, internetAddressCC);  
  66.            }  
  67.              
  68.            // 设置多个密送地址  
  69.            if(null != bccUser && !bccUser.isEmpty()){  
  70.             @SuppressWarnings("static-access")  
  71.             InternetAddress[] internetAddressBCC = new InternetAddress().parse(bccUser);  
  72.             message.setRecipients(Message.RecipientType.BCC, internetAddressBCC);  
  73.            }  
  74.              
  75.            // 发送日期  
  76.            message.setSentDate(new Date());   
  77.              
  78.            // 邮件主题  
  79.            message.setSubject(subject);  
  80.              
  81.            // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件  
  82.            Multipart multipart = new MimeMultipart();  
  83.              
  84.            // 添加邮件正文  
  85.            BodyPart contentPart = new MimeBodyPart();  
  86.            contentPart.setContent(sendHtml, contentPart_Type);  
  87.            multipart.addBodyPart(contentPart);  
  88.              
  89.            BodyPart attachmentBodyPart = null;  
  90.            // 添加附件的内容  
  91.            if (null != attachment && attachment.length != 0) {  
  92.             for (File file : attachment) {  
  93.                 attachmentBodyPart = new MimeBodyPart();  
  94.                   
  95.                 DataSource source = new FileDataSource(file);  
  96.                 attachmentBodyPart.setDataHandler(new DataHandler(source));  
  97.                 //MimeUtility.encodeWord可以避免文件名乱码  
  98.                    attachmentBodyPart.setFileName(MimeUtility.encodeWord(file.getName()));  
  99.                    multipart.addBodyPart(attachmentBodyPart);  
  100.             }  
  101.            }  
  102.              
  103.            // 将multipart对象放到message中  
  104.            message.setContent(multipart);  
  105.              
  106.            // 保存邮件  
  107.            message.saveChanges();  
  108.              
  109.            // smtp验证  
  110.            transport = session.getTransport("smtp");  
  111.            transport.connect(mailHost, sender_username, sender_password);  
  112.              
  113.            // 发送  
  114.            transport.sendMessage(message, message.getAllRecipients());  
  115.            System.out.println("发送成功!");  
  116.     } catch (Exception e) {  
  117.         e.printStackTrace();  
  118.     } finally {  
  119.         if (transport != null) {  
  120.                try {  
  121.                    transport.close();  
  122.                } catch (MessagingException e) {  
  123.                    e.printStackTrace();  
  124.                }  
  125.            }  
  126.     }  
  127.    }  


mailServer.properties:


[html] view plain copy
  1. mail.smtp.host = smtp.ym.163.com  
  2.   
  3. mail.smtp.auth = true  
  4.   
  5. mail.sender.username = xxxx@xxxx.com  
  6.   
  7. mail.sender.password = xxxxx  
  8.   
  9. 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

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 鞋子上的铆钉生锈了怎么办 包包上的铆钉生锈了怎么办 凉鞋的铆钉生锈了怎么办 扇子的铆钉坏了怎么办 包包的铆钉坏了怎么办 汽车半轴螺丝母拧不动怎么办? 卫衣袖子短了怎么办 u型导轨蚊帐下垂怎么办 100的水管螺纹出漏水怎么办 吊顶螺丝没有防锈处理怎么办 膨胀螺丝洞松了怎么办 膨胀螺丝眼大了怎么办 墙上螺丝孔大了怎么办 膨胀螺丝孔深了怎么办 克霉膨胀栓的线怎么办 摩托车排气管螺丝断了怎么办 汽车轮胎螺丝卸不下来怎么办 内六角螺丝卸不下来怎么办 洗衣机六角螺丝卸不动怎么办 黄油嘴打不进去怎么办 螺杆冷水机氟系统有空气怎么办 脚踏式加油枪皮碗不下去怎么办? 自攻螺丝滑丝怎么办? 大工打小工老板不管怎么办 虾缸的过滤吸虾怎么办 加热棒坏了鱼怎么办 钢材软打孔断钻头怎么办 空调余额下水管检查口按不上怎么办 风机盘管噪音大怎么办 混凝土水泥放少了怎么办 门式钢梁端板连接下料短啦怎么办? 灌桩导管堵了怎么办 公路车尾钩歪了怎么办 铃木羚羊车大灯不亮怎么办 玻璃瓶打碎了里面食物怎么办 玻璃门上轴坏了怎么办 配筋面积小了怎么办 ps大文件存不了怎么办 挑架钢丝绳拉环未预埋怎么办 出现偏拉的梁怎么办 尾插不好上锡怎么办