用JAVA发送含有附件的邮件

1、用JAVA发送含有附件的邮件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public void sendKREmailAndFile(String[] toEmail, String mailSubject, String mailContent,List<File> fileList) throws MessagingException {
        Properties prop = new Properties();
        prop.put("mail.smtp.auth", "true");
        prop.put("mail.smtp.host", host);
        prop.put("mail.smtp.port", port);
        prop.put("mail.debug", "true");
        prop.put("mail.smtp.starttls.enable", "true");
        Session session = Session.getInstance(prop, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(userName, password);
            }
        });
 
        MimeMessage message = new MimeMessage(session);
        message.setSubject(mailSubject);
        message.setFrom(new InternetAddress(senderEmail));
        InternetAddress[] toAddress = new InternetAddress[toEmail.length]; // 设置收件人的邮箱
        for (int i = 0; i < toAddress.length; i++) {
            toAddress[i] = new InternetAddress(toEmail[i]);
        }
        message.setRecipients(Message.RecipientType.TO, toAddress);
 
        message.setSubject(mailSubject, Charsets.UTF_8.name());
 
        String msg = mailContent;
 
        MimeBodyPart mimeBodyPart = new MimeBodyPart();
        mimeBodyPart.setContent(msg, messageType);
 
        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(mimeBodyPart);
        //关键代码:发送附件
        if(fileList != null){
            for(File file : fileList){
                MimeBodyPart appendix = new MimeBodyPart();
                appendix.setDataHandler(new DataHandler(new FileDataSource(file.getAbsolutePath())));
                appendix.setFileName(file.getName());
                multipart.addBodyPart(appendix);
            }
        }
        message.setContent(multipart);
        Transport.send(message);
    }

 2、其实和发送普通邮件的基本差不多。只是加了下面的代码,所以发送不带附件和带附件的邮件,都可以用这个方法

1
2
3
4
5
6
7
8
9
//关键代码:发送附件
        if(fileList != null){
            for(File file : fileList){
                MimeBodyPart appendix = new MimeBodyPart();
                appendix.setDataHandler(new DataHandler(new FileDataSource(file.getAbsolutePath())));
                appendix.setFileName(file.getName());
                multipart.addBodyPart(appendix);
            }
        }

  

posted @   信铁寒胜  阅读(2479)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
历史上的今天:
2021-12-22 使用jacob时总是报错“com.jacob.com.ComFailException: Can't get object clsid from progid?该怎么解决
2021-12-22 java 将word转为PDF (100%与word软件转换一样)
2021-12-22 通过jacob实现文字转语音(附jacob-1.18-x64.dll下载地址)
点击右上角即可分享
微信分享提示