Java 以原始html格式接收电子邮件
我通过sendgrid SMTPAuthenticator发送的电子邮件正在发送并显示为原始html。我使用velocity模板在java中为电子邮件提供消息内容 如何在电子邮件中获得正确的html格式而不是原始html 代码如下:Java 以原始html格式接收电子邮件,java,html,email,velocity,sendgrid,Java,Html,Email,Velocity,Sendgrid,我通过sendgrid SMTPAuthenticator发送的电子邮件正在发送并显示为原始html。我使用velocity模板在java中为电子邮件提供消息内容 如何在电子邮件中获得正确的html格式而不是原始html 代码如下: Properties props = new Properties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.host", SMTP_HOST_NAME
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.port", 587);
props.put("mail.smtp.auth", "true");
SMTPAuthenticator auth = new SMTPAuthenticator();
Session mailSession = Session.getDefaultInstance(props, auth);
mailSession.setDebug(true);
Transport transport = mailSession.getTransport();
MimeMessage message = new MimeMessage(mailSession);
String text = messageContent;
message.setFrom(new InternetAddress(sendFrom));
message.setSubject(subject);
message.addRecipient(Message.RecipientType.TO, new InternetAddress(sendTo));
message.setContent(text, "text/html; charset=utf-8");
transport.connect();
transport.sendMessage(message,
message.getRecipients(Message.RecipientType.TO));
transport.close();
我还在head元素中的vm文件中添加了mime类型,下面是示例
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
注意:原始html电子邮件只显示很少的时间,而不是所有时间
提前感谢。我认为您还应该定义Mime主体部分,并将
文本
变量初始化为MimeBodyPart()
对象。尽管我强烈建议您构建一个多部分消息,该消息同时发送文本/普通部分和文本/html部分。这是ISP在电子邮件中寻找的一个常见问题,因为无法呈现html
的电子邮件客户端仍然存在
Multipart multipart = new MimeMultipart("alternative");
BodyPart textPart = new MimeBodyPart();
textPart.setContent(
"Everything is awesome",
"text/plain; charset=utf-8");
BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(
"<p> Everything is awesome! </p>",
"text/html;charset=utf-8");
multipart.addBodyPart(textPart);
multipart.addBodyPart(htmlPart);
message.setContent(multipart);
Multipart Multipart=新的MimeMultipart(“备选”);
BodyPart textPart=新的MimeBodyPart();
textPart.setContent(
“一切都很棒”,
“文本/纯文本;字符集=utf-8”);
BodyPart htmlPart=新的MimeBodyPart();
htmlPart.setContent(
“一切都很棒!”,
“text/html;charset=utf-8”);
multipart.addBodyPart(文本部分);
multipart.addBodyPart(htmlPart);
message.setContent(多部分);
这是一份副本,不幸的是,询问者没有接受回答请回答红色常见问题。如果您共享代码,有人可以更快地提供帮助。很可能您没有设置其mime类型。我已经将mime类型设置为utf-8,并且还添加了内容类型:text/html。但仍然是这样comes@EvanKnowles我已经添加了内容类型:text/html@Jayan:我已经添加了代码,请看一下。