在GAE中发送带有图像的html电子邮件
问题描述:
当我从GAE中发送电子邮件时,我会收到带有quoted-printable的Content-Transfer-Encoding的电子邮件。我期待着将其设置为base64。除了当我收到电子邮件时不显示图像时,将会查找quoted-printable。因为它是现在我的HTML看起来像这样:在GAE中发送带有图像的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);
我如何可以发送HTML格式的电子邮件,在GAE的图像?我已阅读了以下两个错误/功能请求,这些错误/功能请求清楚地说明了存在限制。
http://code.google.com/p/googleappengine/issues/detail?id=198 http://code.google.com/p/googleappengine/issues/detail?id=965
答
HTML嵌入图像似乎在电子邮件客户端可以支持不佳:http://www.campaignmonitor.com/blog/post/1761/embedding-images-in-email/
是什么支持HTML图像附加到电子邮件:http://www.campaignmonitor.com/blog/post/1759/embedding-images-revisited/
但是,正如您注意到链接到issue,第二个选项在GAE中得不到支持。您可以尝试的是手动创建第二个链接中显示的邮件内容。
您是否在电子邮件客户端中检查收到的电子邮件的来源? AFAIK,大多数电子邮件客户端不支持HTML嵌入式图像。 – 2012-03-22 13:33:32
是的,我检查了源代码,一切看起来很好,除了= 3D出现无处不在。我没有意识到大多数电子邮件客户端不会支持HTML嵌入图像.... – 2012-03-22 13:38:42
= 3D是来自引用打印的编码,没关系。看起来,HTML嵌入式图像在各种电子邮件客户端中得不到很好的支持:http://www.campaignmonitor.com/blog/post/1761/embedding-images-in-email/ – 2012-03-22 14:36:19