无法使用java mail api发送带附件的html内容

时间:2017-10-09 10:04:15

标签: java javamail

我想发送html内容以及附件。那怎么能用同一个邮件发送呢?

有人可以指导我。谢谢

try {  

MimeMessage message = new MimeMessage(session);  
            message.setFrom(new InternetAddress(user));  


            message.addRecipient(Message.RecipientType.CC,new InternetAddress("username@abc.com"));
             MimeBodyPart messageBodyPart1 = new MimeBodyPart();  
            messageBodyPart1.setText(data, "text/html");
            MimeBodyPart messageBodyPart2 = new MimeBodyPart();  
            String filename = "Data.xlsx";//change accordingly  
            DataSource source = new FileDataSource(filename);  
            messageBodyPart2.setDataHandler(new DataHandler(source));  
            messageBodyPart2.setFileName(filename);
            Multipart multipart = new MimeMultipart();  
            multipart.addBodyPart(messageBodyPart1);  
            multipart.addBodyPart(messageBodyPart2);  
            message.setSubject("FOS Report");  
            message.setContent(multipart); 

    //send the message  
     Transport.send(message);  

     System.out.println("message sent successfully...");  

     }
 catch (MessagingException e) {
e.printStackTrace();}

1 个答案:

答案 0 :(得分:0)

当您有两种不同类型的内容(在您的情况下为二进制和HTML)时,您必须使用Multipart进行正确的再现。 您可以在此处了解Multipart:http://docs.oracle.com/javaee/6/api/javax/mail/Multipart.html

关于如何使用Multipart使用JavaMail,这是一个非常好的教程: https://www.programcreek.com/java-api-examples/javax.mail.Multipart

如果您需要进一步的帮助,请发表评论/收件箱。