如何在JAVA中包含文本版本的电子邮件

时间:2013-02-25 07:27:54

标签: javamail html-email spam sendgrid

我通过java网络应用程序发送电子邮件,电子邮件只包含html内容。发送给收件人的电子邮件登陆SPAM文件夹,特别是一个域(例如:mydomain.com)。

所以,当我搜索解决方案时,它说,电子邮件还必须包含普通版本,那么如何在java中的html邮件中包含普通版本,我的电子邮件也包含附件。

2 个答案:

答案 0 :(得分:2)

我找到了解决方案,工作正常。

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("&nbsp;","").replaceAll("&amp;","&"));  //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); 

答案 1 :(得分:1)

JavaMail FAQ entry将帮助您处理除附件部分以外的所有内容。首先尝试这个简单的版本,然后再继续工作。

JavaMail FAQ entry讨论了附件。

你需要将两者结合起来。您需要创建一个包含多部分/混合内容的邮件来保存主体和附件。第一个正文部分应该是多部分/替代内容,而不仅仅是纯文本部分。

如果这还不足以让你开始,请告诉我。