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 标头