【发布时间】:2012-04-07 00:50:36
【问题描述】:
当我当前从 GAE 中发送一封电子邮件时,我收到的电子邮件的 Content-Transfer-Encoding 为quoted-printable。我希望将其设置为 base64。除了在我收到电子邮件时未显示图像外,将找到引用的可打印文件。因为现在我的 html 看起来像这样:
String base64StringImg = Base64.encode(my byte array);
StringBuilder htmlBody = new StringBuilder();
htmlBody.append("<html>");
htmlBody.append("<body>");
htmlBody.append("<img src='data:image/png;base64,");
htmlBody.append(base64StringImg);
htmlBody.append("'/>");
htmlBody.append("<br/><br/>");
htmlBody.append("Hello " + name);
htmlBody.append("</body>");
htmlBody.append("</html>");
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromUser));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
message.setSubject(subject);
Multipart mp = new MimeMultipart();
BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(htmlBody.toString(), "text/html; charset=UTF-8");
mp.addBodyPart(htmlPart);
message.setContent(mp);
Transport.send(message);
如何在 GAE 中发送带有图像的 html 电子邮件?我已阅读以下两个错误/功能请求,它们清楚地表明存在限制。
http://code.google.com/p/googleappengine/issues/detail?id=198 http://code.google.com/p/googleappengine/issues/detail?id=965
【问题讨论】:
-
您是否在您的电子邮件客户端中检查了收到的电子邮件的来源? AFAIK,大多数电子邮件客户端不支持 HTML 嵌入图像。
-
是的,我检查了源代码,一切看起来都很好,除了到处出现的 =3D。我没有意识到大多数电子邮件客户端不支持 HTML 嵌入图像....
-
=3D 来自quoted-printable 编码,没关系。各种电子邮件客户端似乎都不太支持 HTML 嵌入图像:campaignmonitor.com/blog/post/1761/embedding-images-in-email
-
一个额外的信息,这不是像
htmlBody.append("<html>");这样的好习惯使用jinja2模板,准备一个模板并重复使用它。在模板中,可以使用python代码。
标签: java google-app-engine email