发送包含这些附件、htmlbody、内联图像或所有这些附件的 mime 消息?
Posted
技术标签:
【中文标题】发送包含这些附件、htmlbody、内联图像或所有这些附件的 mime 消息?【英文标题】:Sending mime message containing any of these attachment,htmlbody ,inline image or all of them? 【发布时间】:2012-10-22 00:57:35 【问题描述】:据我所知,我的电子邮件应用程序仅支持带有附件的纯文本。如果附件列表为空,我会以简单的方式处理它, 只需发送 mime 消息,如果附件列表不为空,我正在为每个附件创建正文部分,为正文创建一个。添加它们 在设置为 MIME 消息的多部分中。
但现在需要支持html部分和内联图片(图片将作为附件发送 和 html 正文将引用)。我知道 mime 的基础知识,即如何为每种 mime 类型创建正文部分。但我真的没有得到 当我不知道正文和附件列表将包含什么时,如何在运行 timw 时创建正文部分。例如 body 只能包含普通的 文本或 html 正文或带有附件的 html 正文或带有带附件的内联图像的 html 正文或带有附件的普通正文。
坦率地说,我没有得到 如何处理上述排列和组合的电子邮件正文和附件列表。(例如,有时我需要创建顶部 消息作为多部分/混合包含身体部分作为多部分/替代和另一个身体部分平原,bla bla....)。 有标准吗 基于正文内容和附件列表处理这些所有场景的代码。请指出正确的方向?
这是旧的方法签名,它只支持带有附件的纯文本
public void sendMimeEmail(List toMailAddresses,
String fromMailAddress, String body, List<AttachmentData> attachments)
【问题讨论】:
【参考方案1】:我不认为这里有什么魔法。您只需要足够的“if”语句来涵盖这些情况。
【讨论】:
比尔。根据我的理解,实现这种最佳方法是解析消息正文并查看是否存在带有 cid 的 html 标记或 html 标记。如果存在,则将 mime 消息设置为 multipart/alternative 或 multipart/related。这种逻辑。对吗? 通常我希望您的程序知道消息正文是 html 还是纯文本。如果你必须猜测,你可以想出你喜欢的启发式方法。您是否正在收集消息正文作为用户的输入? 是的,我正在收集消息正文文本作为来自用户的输入。我计划每次将文本视为 html,然后将消息作为替代,以便不支持 html 文本的电子邮件客户端,可以拿起文本/普通部分吗? 是的,可以,但是您需要自己将用户输入的 html 文本转换为纯文本; JavaMail 不会帮助您。以上是关于发送包含这些附件、htmlbody、内联图像或所有这些附件的 mime 消息?的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 html 表单中的 mail() 自动发送内联和/或附件,但不断获取二进制字符串
使用 Django 在 HTML 电子邮件模板中将图像作为内联附件发送