如何在多部分电子邮件中使用 html 标签。当我使用<b>
它不被识别为粗体标签时。
4 回答
啊,你正在使用Java。
请注意,在我看来,您应该始终在 HTML 电子邮件中设置纯文本替代项。
此代码还允许您内联图像(从带有 的 HTML 引用<img src="cid:foo">
,但并非所有电子邮件客户端都支持此功能。
MimeMessage mm = prepareMessage(from, to, subject, cc, bcc);
MimeMultipart mp = new MimeMultipart("alternative");
// Attach Plain Text
MimeBodyPart plain = new MimeBodyPart();
plain.setText(plainText);
mp.addBodyPart(plain);
/*
* Any attached images for the HTML portion of the email need to be encapsulated with
* the HTML portion within a 'related' MimeMultipart. Hence we create one of these and
* set it as a bodypart for the overall message.
*/
MimeMultipart htmlmp = new MimeMultipart("related");
MimeBodyPart htmlbp = new MimeBodyPart();
htmlbp.setContent(htmlmp);
mp.addBodyPart(htmlbp);
// Attach HTML Text
MimeBodyPart html = new MimeBodyPart();
html.setContent(htmlText, "text/html");
htmlmp.addBodyPart(html);
// Attach template images (EmailImage is a simple class that holds image data)
for (EmailImage ei : template.getImages()) {
MimeBodyPart img = new MimeBodyPart();
img.setContentID(ei.getFilename());
img.setFileName(ei.getFilename());
ByteArrayDataSource bads = new ByteArrayDataSource(ei.getImageData(), ei.getMimeType());
img.setDataHandler(new DataHandler(bads));
htmlmp.addBodyPart(img);
}
mm.setContent(mp);
您在电子邮件的那部分将 Content-type mime 设置为 text/html 吗?
或者,您是否使用 Outlook 查看 - Outlook 的查看器使用 Word 来呈现 HTML,而不是像任何明智的设计那样使用 IE 呈现引擎。这确实意味着可能会丢失重要的格式。
或者,尝试不同的字体。一些字体没有定义粗体变体。虽然这是一个很长的镜头,但大多数字体渲染技术都可以自动加粗非粗体字体。
您用于发送电子邮件的编程语言。
在任何语言中,都应该有一个选项,例如“IsBodyHtml”。做“真”这个检查。像.NET的代码
System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage(); mm.IsBodyHtml = 真;
所以邮件将作为 html 文本发送。
这个问题很难有一个明确的答案。事情可能无法正常工作的原因有很多。这些是您可以检查以尝试隔离问题的一些事项。
其他 html 标签是否被识别?例如。<p>
, <a>
? 如果是这样,您是否尝试过使用<strong>
标签而不是<b>
?
检查电子邮件阅读器中的消息来源。'<' 或 '>' 字符可能已转义为 '<' 或'>' 在它被发送之前。
您是否尝试过在不同的阅读器中查看电子邮件,比如基于网络邮件或桌面的?
尝试使用 CSS 更改字体粗细:
.important-text { font-weight: bold; }
<span class=".important-text">Super important text</span>