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

Unable to send html content with attachment using java mail api

我想发送 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();}

当您有两种不同类型的内容(在您的情况下是二进制和 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

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