mox*_*hed 5 email-attachments node.js gmail-api
我是 Node.js 的新手,我正在尝试使用 Gmail API 创建一个邮箱,除了在电子邮件中上传附件外,一切正常。我找到了 Java、Python 和 C# 的示例,但我找不到任何关于它的节点文档。任何提示将不胜感激。
这是我的代码:
function makeBody(to, from, subject, message) {
var str = ["Content-Type: multipart/mixed; charset=\"UTF-8\"\n",
"MIME-Version: 1.0\n",
"Content-Transfer-Encoding: 7bit\n",
"to: ", to, "\n",
"from: ", from, "\n",
"subject: ", subject, "\n\n",
message,
file
].join('');
var encodedMail = new Buffer(str).toString("base64").replace(/\+/g, '-').replace(/\//g, '_');
return encodedMail;
}
function sendMessage(auth) {
var raw = makeBody(tap, 'me', response.subject, response.content, response.files);
gmail.users.messages.send({
auth: auth,
userId: 'me',
resource: {
raw: raw
}
}, function (err, response) {
if (err) {
console.log('Error ' + err);
return;
}
if (response) {
res.sendFile(__dirname + '/boite.html')
}
});
}
Run Code Online (Sandbox Code Playgroud)
LPS*_*LPS 13
这可能有点晚了,无论如何我会花时间以防万一以后有人想要替代品。
Moxched 方法的主要问题是他可能需要仔细查看 MIME 规范(这对我来说是一个很大的痛苦)才能更好地理解发送附件所必需的一些事情。
从我的立场来看,为了能够使用 gmail API 发送附件和许多其他内容,您必须根据 MIME 规范构建所有请求,为此您需要了解 MIME 中的事物是如何工作的,包括边界。
Joris 方法有效,但最终没有使用 nodeJS 库来发送电子邮件。他之所以不能使用gmail-api-create-message-body带有 gmail API的包中的答案,是因为出于某种原因,这个库在其 MIME 消息的顶部生成了以下内容:
'Content-Type: multipart/related; boundary="foo_bar_baz"',
`In-Reply-To: fakeemail@gmail.com`,
`References: `,
`From: fakeemail2@gmail.com`,
`Subject: SUBJECT`,
`MIME-Version: 1.0`,
'',
`--foo_bar_baz`,
`Content-Type: application/json; charset="UTF-8"`,
'',
`{`,
`}`,
'',
`--foo_bar_baz`,
`Content-Type: message/rfc822`,
'',
...
Run Code Online (Sandbox Code Playgroud)
出于某种原因,gmailAPI 不喜欢这样......
我的建议是更好地理解 MIME 规范,一个非常简单的方法是使用一些旧的逆向工程,为此我建议查看来自gmail-api-create-message-body和mail-composer来自 nodemailer的回复。
使用nodemailer/lib/mail-composer您将能够根据 MIME 规范轻松生成必要的 MIME 消息,它包括附件支持和所有其他内容。生成的 MIME 消息与 Gmail API 兼容。我留下了一个基于 NodeJS 文档示例的工作示例,它发送了一封带有 2 个附件的电子邮件。
希望这可以帮助!
'Content-Type: multipart/related; boundary="foo_bar_baz"',
`In-Reply-To: fakeemail@gmail.com`,
`References: `,
`From: fakeemail2@gmail.com`,
`Subject: SUBJECT`,
`MIME-Version: 1.0`,
'',
`--foo_bar_baz`,
`Content-Type: application/json; charset="UTF-8"`,
'',
`{`,
`}`,
'',
`--foo_bar_baz`,
`Content-Type: message/rfc822`,
'',
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5958 次 |
| 最近记录: |