免责声明:我对技术电子邮件方面不太满意。
所以我设置了一个免费的zoho mail帐户,它基本上只是我域名的邮件服务器。这种方式通过mx记录转发或其他方式起作用,我不完全确定它是如何工作的。
无论如何,关键是:我可以在每个Outlook使用我的帐户时轻松更改来自字段。因此,我的电子邮件地址foo@bar.com
在大多数电子邮件客户端中显示为Foo from bar.com
。
现在,我想通过带有SSL的SMTP通过nodemailer(v1.10.0)从我的donotreply@bar.com
帐户发送一些自动电子邮件。我尝试过在文档/互联网上找到的不同方法。他们所有人都抛出了一个暧昧的堆栈痕迹(见下文)。
一旦我停止尝试更改from字段,一切正常(除了来自字段的错误的)。由于我不知道该怎么回事,我要求帮助解决这个问题。
我尝试将createTransport()
的第二个参数更改为我想要的字段。没用。
nodemailer.createTransport(auth.mail, {from: auth.mail.auth.user});
到
nodemailer.createTransport(auth.mail, {from: 'Foo from bar.com'});
我已尝试设置auth.mail.from
,但这也无效。我尝试通过将第二个参数传递给auth.mail.from
来设置createTransport()
。
我的代码
var nodemailer = require('nodemailer');
var auth = { mail: { host: 'smtp.zoho.com', port: 465, secure: true, auth: { user: 'donotreply@bar.com', pass: 'strongpassword' } };
var log = require('./log');
var transporter = nodemailer.createTransport(auth.mail, {from: auth.mail.auth.user});
function sendText(settings,cb) {
transporter.sendMail(settings, function (err, info) {
if (err) {
log.warn('Failed to send an Email', err);
} else {
log.info('Successfully sent email', info);
}
if (cb) {
cb(err, info);
}
});
}
这里是我之前谈过的堆栈跟踪
Message failed
at SMTPConnection._formatError (c:\...\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:388:15)
at SMTPConnection._actionStream (c:\...\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:948:30)
at SMTPConnection.<anonymous> (c:\...\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:579:14)
at SMTPConnection._processResponse (c:\...\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:511:16)
at SMTPConnection._onData (c:\...\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:357:10)
at emitOne (events.js:77:13)
at TLSSocket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at TLSSocket.Readable.push (_stream_readable.js:110:10)
at TLSWrap.onread (net.js:523:20)
答案 0 :(得分:22)
from字段必须采用Display Name <email@address.com>
transporter.sendMail({ ..., from: 'Foo from @bar.com <donotreply@bar.com>' });
答案 1 :(得分:9)
我对from:
字段有同样的问题,我回去阅读gmail设置,这就是我发现的 - 正如我所说,只有GMAIL。我还没有尝试过其他提供商。
src:nodemailer.com/usage/using-gmail/
客户:Gmail
Gmail还始终将经过身份验证的用户名设置为发件人:电子邮件 地址。因此,如果您通过foo@example.com进行身份验证并进行设置 bar@example.com作为发件人:地址,然后Gmail还原此地址 用经过身份验证的用户替换发件人。
基本上,您只能在from:
字段
答案 2 :(得分:5)
您可以在nodemailer.com网站上查看的第一个示例。
TIFFSetField@LIBTIFF_4.0' usr/lib/libpq.so.5:
undefined reference to