Node-imap 将新电子邮件附加到草稿
Node-imap append new email to drafts
一直在使用 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, some subject, some body-text
应该传递给函数的字符串的形式是什么?难道我做错了什么?为什么 imap.append(JSON.stringify(data)) 不工作?
感谢@Max 的帮助,它需要一个 mime 消息类型...我通过安装 mimemessage module 解决了它并使用了它的文档。我的工作代码如下所示:
var mimemessage = require('mimemessage');
let msg, htmlEntity, plainEntity;
msg = mimemessage.factory({
contentType: 'multipart/alternate',
body: []
});
htmlEntity = mimemessage.factory({
contentType: 'text/html;charset=utf-8',
body: data.body
});
plainEntity = mimemessage.factory({
body: data.body
});
msg.header('Message-ID', '<1234qwerty>');
msg.header('To', data.to);
msg.header('Subject', data.subject);
//msg.body.push(htmlEntity);
msg.body.push(plainEntity);
imap.append(msg.toString());
一直在使用 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, some subject, some body-text
应该传递给函数的字符串的形式是什么?难道我做错了什么?为什么 imap.append(JSON.stringify(data)) 不工作?
感谢@Max 的帮助,它需要一个 mime 消息类型...我通过安装 mimemessage module 解决了它并使用了它的文档。我的工作代码如下所示:
var mimemessage = require('mimemessage');
let msg, htmlEntity, plainEntity;
msg = mimemessage.factory({
contentType: 'multipart/alternate',
body: []
});
htmlEntity = mimemessage.factory({
contentType: 'text/html;charset=utf-8',
body: data.body
});
plainEntity = mimemessage.factory({
body: data.body
});
msg.header('Message-ID', '<1234qwerty>');
msg.header('To', data.to);
msg.header('Subject', data.subject);
//msg.body.push(htmlEntity);
msg.body.push(plainEntity);
imap.append(msg.toString());