【发布时间】:2018-04-19 04:59:32
【问题描述】:
一直在使用node-imap,我正在尝试将电子邮件保存到草稿,它看起来像这样:
var imap = new Imap({
user: this.emailUsername,
password: this.emailPassword,
host: this.host,
port: this.port,
tls: this.tls,
debug: console.log
});
imap.once('ready', function () {
imap.openBox('inbox.Drafts', false, (err, box) => {
if (err) throw err;
let str = "to:" + data.to + " subject:" + data.subject + " body: " + data.body + " text: " + data.body;
imap.append(str);
})
});`
此代码生成新的草稿电子邮件,但似乎我无法将数据附加到其字段...它说只能将字符串、缓冲区或数组缓冲区作为数据传递给 imap.append()。所以我尝试传递 JSON.stringify(data) - 没有附加任何内容。当我像上面代码中所示的字符串一样传递它时,只有“to”值被附加到“to”字段中。如果我像这样修改字符串:
let str = "to:" + data.to + ", subject:" + data.subject + ", body: " + data.body + ", text: " + data.body;
//or
let str = "to:" + data.to + "; subject:" + data.subject + "; body: " + data.body + "; text: " + data.body;
所有数据都被附加到'to'字段中,例如:
example@hotmail.com,一些主题,一些正文
应该以什么形式传递给函数的字符串?难道我做错了什么?为什么 imap.append(JSON.stringify(data)) 不起作用?
【问题讨论】:
-
因为它是 mime 格式?生成 MIME 消息。至少,您的标题行之间需要有“\r\n”。
-
@Max 会在早上试试,你
-
@Max 使它与另一个 mimemessage 模块一起工作.. 非常感谢
-
您可能希望自己回答您的问题,并详细说明您的工作内容。我不知道node(甚至JS),所以我不能给出一个全面的答案。
-
一会儿就好了