我正在通过 java web 应用程序发送电子邮件,电子邮件仅包含 html 内容。发送给收件人的电子邮件会登陆特定域的垃圾邮件文件夹(例如:mydomain.com)。
因此,当我搜索解决方案时,它说,电子邮件还必须包含纯版本,那么如何在 java 中的 html 邮件中也包含纯版本,我的电子邮件还包含附件。
我正在通过 java web 应用程序发送电子邮件,电子邮件仅包含 html 内容。发送给收件人的电子邮件会登陆特定域的垃圾邮件文件夹(例如:mydomain.com)。
因此,当我搜索解决方案时,它说,电子邮件还必须包含纯版本,那么如何在 java 中的 html 邮件中也包含纯版本,我的电子邮件还包含附件。
我找到了解决方案,它工作正常。
String body ="<html><head></head><body><span>this is a test mail</span></body></html>
Multipart multiPart = new MimeMultipart("alternative"); // Create an "Alternative" Multipart message
MimeBodyPart text = new MimeBodyPart();
MimeBodyPart html = new MimeBodyPart();
text.setText(body.replaceAll("\\<[^>]*>","").replaceAll(" ","").replaceAll("&","&")); //set the text/plain version
html.setContent(Jsoup.parse(body).html(), "text/html"); //set the text/html version
multiPart.addBodyPart(text);
multiPart.addBodyPart(html);
message.setContent(multiPart);
这个JavaMail FAQ 条目将帮助您处理除附件部分之外的所有内容。在继续之前先尝试这个简单的版本并让它工作。
这个JavaMail FAQ 条目讨论了附件。
您需要将两者结合起来。您需要创建一个包含多部分/混合内容的消息来保存主体和附件。第一个正文部分应该是多部分/替代内容,而不仅仅是纯文本部分。
如果这还不足以让您开始,请告诉我。