boo*_*oop 19 node.js nodemailer
免责声明:我对技术电子邮件方面不太满意.
所以我建立了一个免费的zoho邮件帐户,它基本上只是我域名的邮件服务器.这种工作通过mx记录转发或其他东西,我不完全确定它是如何工作的.
无论如何,关键是:我可以在每个Outlook使用我的帐户时轻松更改来自字段.所以我的电子邮件地址foo@bar.com与Foo from bar.com大多数邮件客户端一样.
现在我想发送一些电子邮件自动从我的donotreply@bar.com账户nodemailer(v1.10.0)通过SMTP使用SSL.我尝试过在文档/互联网上找到的不同方法.他们所有人都抛出了一个暧昧的堆栈痕迹(见下文).
一旦我停止尝试更改from字段,一切正常(除了字段中的错误).因为我不知道什么事情,我要求帮助解决这个问题.
我已经尝试将第二个参数更改createTransport()为我想要的字段.不工作.
nodemailer.createTransport(auth.mail, {from: auth.mail.auth.user});
Run Code Online (Sandbox Code Playgroud)
至
nodemailer.createTransport(auth.mail, {from: 'Foo from bar.com'});
Run Code Online (Sandbox Code Playgroud)
我试过设置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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这里是我之前谈过的堆栈跟踪
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)
Run Code Online (Sandbox Code Playgroud)
boo*_*oop 24
from字段必须采用格式 Display Name <email@address.com>
transporter.sendMail({ ..., from: 'Foo from @bar.com <donotreply@bar.com>' });
Run Code Online (Sandbox Code Playgroud)
我在该from:领域遇到了同样的问题,我回去阅读gmail设置,这就是我发现的 - 正如我所说,只有GMAIL.我还没有尝试过其他提供商.
src:nodemailer.com/usage/using-gmail/
客户端:Gmail
Gmail还始终将经过身份验证的用户名设置为来自:电子邮件地址.因此,如果您通过foo@example.com进行身份验证并将bar@example.com设置为from:地址,则Gmail会将其恢复,并将该发件人替换为经过身份验证的用户.
基本上,您只能在该from:字段上指定经过身份验证的用户
谢谢,如果我错了,请告诉我
您可以在nodemailer.com网站上查看的第一个示例。
var nodemailer = require('nodemailer');
// create reusable transporter object using the default SMTP transport
var transporter = nodemailer.createTransport('smtps://user%40gmail.com:pass@smtp.gmail.com');
/*set from user in option*/
var mailOptions = {
from: 'Fred Foo <foo@blurdybloop.com>', // sender address
to: 'bar@blurdybloop.com, baz@blurdybloop.com', // list of receivers
subject: 'Hello ?', // Subject line
text: 'Hello world ', // plaintext body
html: '<b>Hello world </b>' // html body
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14387 次 |
| 最近记录: |