无法使用 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
如果您需要进一步的帮助,请评论/收件箱。
我想发送 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
如果您需要进一步的帮助,请评论/收件箱。