JavaScript:创建 MIME 消息

Posted

技术标签:

【中文标题】JavaScript:创建 MIME 消息【英文标题】:JavaScript: create MIME message 【发布时间】:2013-06-07 17:28:34 【问题描述】:

我有发送消息的用户界面。用户输入主题、消息正文、要发送的电子邮件、附加一些文件。提交后,我需要将消息作为 MIME 消息发送,如下所示:

From: John Doe <example@example.com>
MIME-Version: 1.0
Content-Type: multipart/mixed;
        boundary="XXXXboundary text"

This is a multipart message in MIME format.

--XXXXboundary text 
Content-Type: text/plain

this is the body text

--XXXXboundary text 
Content-Type: text/plain;
Content-Disposition: attachment;
        filename="test.txt"

this is the attachment text

--XXXXboundary text--

如何将用户输入的信息收集为 MIME 消息?我搜索在客户端使用 javascript 构建 MIME 消息,但没有成功。如果附件存在,我需要将它们转换为 base64 字符串,然后在 MIME 消息中发送。谢谢。

【问题讨论】:

即使你在客户端编写了一个mime消息,你打算如何用javascript发送它? @claustrofob 服务器等待 MIME 消息,Web 客户端和移动(ios,..)客户端作为 MIME 消息发送。所以作为网络客户端,我应该作为 MIME 消息发送。我希望我可以通过 ajax 将它作为字符串(文本/纯文本)发送。 实际上可以将 mime 消息与 javascript 结合使用。您可以找到 base64 编码功能的实现,您可以使用 File API 读取文件内容。但它只适用于现代浏览器(以及 v10 的 IE)。这对客户来说绝对是一笔巨大的开销。尤其是带有附件的操作。您实际上尝试构建电子邮件 mime 消息。它不是用于电子邮件服务器吗?您不能直接从浏览器发送电子邮件。 @bob:mime 是 消息格式。但是您的传输协议是什么?如果没有自定义插件,则只能使用 HTTP(S) 或 WS(S)。 @Bergi 我使用 http(s)。我已将 mime 消息创建为文本。然后我将它作为文本/纯文本发送到服务器。 【参考方案1】:

我创建了一个 javascript 插件来在 javascript 中创建 MIME 消息。 https://github.com/ikr0m/mime-js。创建具有必要属性的mail 对象并调用 createMimeMessage 函数。它返回就绪的 MIME 消息作为 javascript 字符串。

var mail =   
    "to": "email1@example.com, email2@example.com",
    "subject": "Today is rainy",
    "fromName": "John Smith",
    "from": "john.smith@mail.com",
    "body": "Sample body text",
    "cids": [],
    "attaches" : []

var mimeMessage = createMimeMessage(mail);
console.log(mimeMessage);    

希望对你有帮助。

【讨论】:

【参考方案2】:

我认为您应该看看 Node.js 模块的世界...由于没有提供 SMTP 支持,您将无法从浏览器客户端实际发送 MIME 邮件消息。但是您可以通过 XHR 将预先格式化的消息发布到您的网络服务器,然后让网络服务器实际发送消息。

这看起来可以满足您的需求:https://www.npmjs.org/package/mailcomposer

即您可以将 MIME 消息准备为字符串

这个工具可能有助于在浏览器中使用 Node.js 模块:http://browserify.org/

【讨论】:

看起来接近我正在寻找的东西。会检查的。

以上是关于JavaScript:创建 MIME 消息的主要内容,如果未能解决你的问题,请参考以下文章

Domino 10 有时不会在 Java 下解码 MIME 标头

从 MIME 消息信息创建 EML 文件

给定 MIME 消息的文本表示,我如何重新创建该消息?

Java - 使用 JavaMail 发送和接收 S/MIME 消息

如何在 Java 中创建 MIME 附件文本/xml?

如何创建 x-pkcs7-signature s/mime 消息?