【发布时间】:2020-03-16 09:28:45
【问题描述】:
我想在使用 domain1.com SMTP 凭据连接到 domain1.com 时以 myemail@domain2.com 的形式发送电子邮件。 domain1.com 和 domain2.com 都有 SPF 记录。
我做了很多研究,发现您应该能够通过将“a:domain1.com”添加到 domain2.com 的 SPF 记录中来实现这一点。我已经这样做了,但我仍然无法成功发送电子邮件。
我使用 node.js 和 nodemailer 创建了一个测试代码来测试发送电子邮件。
const nodemailer = require('nodemailer');
let transport = nodemailer.createTransport({
host: 'mail.domain1.com',
port: 465,
auth: {
user: 'myemail@domain1.com',
pass: 'password'
}
});
const message = {
from: 'myemail@domain2.com',
to: 'test@gmail.com',
subject: 'Testing 123',
text: 'Testing One Two Three....'
};
transport.sendMail(message, function (err, info) {
if (err) {
console.log('err: ', err);
} else {
console.log('info: ', info);
}
});
{ Error: Message failed: 550 Error458 block
at SMTPConnection._formatError (C:\Users\Admin\Desktop\testsendmail\node_modules\nodemailer\lib\smtp-connection\index.js:784:19)
at SMTPConnection._actionSMTPStream (C:\Users\Admin\Desktop\testsendmail\node_modules\nodemailer\lib\smtp-connection\index.js:1661:34)
at SMTPConnection._responseActions.push.str (C:\Users\Admin\Desktop\testsendmail\node_modules\nodemailer\lib\smtp-connection\index.js:1146:22)
at SMTPConnection._processResponse (C:\Users\Admin\Desktop\testsendmail\node_modules\nodemailer\lib\smtp-connection\index.js:942:20)
at SMTPConnection._onData (C:\Users\Admin\Desktop\testsendmail\node_modules\nodemailer\lib\smtp-connection\index.js:749:14)
at TLSSocket.SMTPConnection._onSocketData.chunk (C:\Users\Admin\Desktop\testsendmail\node_modules\nodemailer\lib\smtp-connection\index.js:195:44)
at TLSSocket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
at TLSSocket.Readable.push (_stream_readable.js:219:10)
code: 'EMESSAGE',
response: '550 Error458 block',
responseCode: 550,
command: 'DATA' }
以下是 2 个域的 SPF 记录:
domain1.com:
v=spf1 mx a ~all
domain2.com:
v=spf1 a a:domain1.com mx ?all
【问题讨论】:
标签: javascript node.js smtp nodemailer spf