Viv*_*han 5 html java jakarta-mail javax.mail
我正在尝试使用Javax邮件API将格式化的html作为邮件发送.使用的邮件工具代码是
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setHeader("Auto-Submitted", "auto-generated");
message.setReplyTo(InternetAddress.parse(commaSeperatedReplyTo));
Multipart multipart = new MimeMultipart();
if (body != null) {
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(body, "text/html;charset=utf-8");
multipart.addBodyPart(messageBodyPart);
}
message.setContent(multipart);
Run Code Online (Sandbox Code Playgroud)
并且生成的html体是
<html>
<body>
<style type="text/css">
#content ul li{
display:inline !important;
float:left;
padding: 7px;
margin-right: 4px;
font-style: italic;
}
</style>
<font face ="Arial" size=4> <U>DESCRIPTION</U>:Test </font><br/><br/>
<div id="content">
<ul>
<li> component_id</li>
<li> component_type_id</li>
<li> name</li>
<li> update_user</li>
<li> update</li>
<li> key</li>
<li> field</li>
</ul>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我希望这能显示内联,而不是上下.我也在小提琴中测试了生成的html.按预期工作.但是,在邮件中,我将它作为正常列表.为什么内嵌显示无法在电子邮件中使用?
需要帮忙
电子邮件客户端通常不遵循标准。诸如gMail之类的某些客户端甚至会忽略-block中的CSS声明<style>。CampaignMonitor在如何创建大多数客户端支持的HTML电子邮件方面拥有大量资源。
您应该将布局转换为以下形式(使用表格!):
<html>
<body>
<font face="Arial" size=4><U>DESCRIPTION</U>:Test</font>
<br/>
<br/>
<table>
<tr>
<td>component_id</td>
<td>component_type_id</td>
<td>name</td>
<td>update_user</td>
<td>update</td>
<td>key</td>
<td>field</td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用内联CSS为表格/单元格设置样式。