我想使用nodemailer发送邮件 这样配置:
let transporter = nodemailer.createTransport({
service: 'smtp.exmail.qq.com',
port: 465,
secureConnection: true,
auth: {
user: 'xxx@qq.com',
pass: 'xxx'
}
})
let mailOptions = {
from: 'xxx@qq.com',
to: 'x@qq.com',
subject: '....'
}
transporter.sendMail(mailOptions, (err, info) => {
if (err) {
console.log('err', err)
}
})
报错如下:
err { Error: connect ECONNREFUSED 127.0.0.1:465
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1161:14)
errno: 'ECONNREFUSED',
code: 'ECONNECTION',
syscall: 'connect',
address: '127.0.0.1',
port: 465,
command: 'CONN' }
为什么服务器会指向 127.0.0.1:465呢?是配置的不对吗?求解答
哥们看文档没?
'use strict';
const nodemailer = require('nodemailer');
// Generate test SMTP service account from ethereal.email
// Only needed if you don't have a real mail account for testing
nodemailer.createTestAccount((err, account) => {
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: 'smtp.ethereal.email',
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: account.user, // generated ethereal user
pass: account.pass // generated ethereal password
}
});
// setup email data with unicode symbols
let mailOptions = {
from: '"Fred Foo 👻" <foo@example.com>', // sender address
to: 'bar@example.com, baz@example.com', // list of receivers
subject: 'Hello ✔', // Subject line
text: 'Hello world?', // plain text body
html: '<b>Hello world?</b>' // html body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
// Preview only available when sending through an Ethereal account
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
});
});
@Yangk030208 使用文档这段代码 给自己邮箱发邮件 打印已经成功发送 但是并没有收到邮件啊~~
大兄弟按照文档是没问题的,可能姿势不对!比如mailOptions里面多填一些东西。在试试
@tzbcf 为啥我死活都收不到邮件呢?帮我看一下呗:
'use strict';
const nodemailer = require('nodemailer');
// Generate test SMTP service account from ethereal.email
// Only needed if you don't have a real mail account for testing
nodemailer.createTestAccount((err, account) => {
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: 'smtp.ethereal.email',
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: account.user, // generated ethereal user
pass: account.pass // generated ethereal password
}
});
// setup email data with unicode symbols
let mailOptions = {
from: account.user, // sender address
to: '193269394@qq.com', // list of receivers
subject: 'Hello ✔', // Subject line
text: 'Hello world?', // plain text body
html: '<b>Hello world?</b>' // html body
};
// send mail withs defined transport object
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
// Preview only available when sending through an Ethereal account
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
});
});
@jowang2016 这是我写的。看起来你那也没毛病。主要你还是看下报错信息。两个配置都很正确。就是你那个邮箱的问题了 const options = { from: user, to: req.body.request.to, cc: req.body.request.cc || ‘’, bcc: req.body.request.bcc || ‘’, sender: req.body.request.sender || ‘’, subject: req.body.request.subject || ‘’, html: req.body.request.content || ‘’, encoding: ‘UTF-8’, attachments: req.body.request.attachments || ‘’ }; let config_email = { host: serverAddr, port: serverPort, secure: serverSecure, secureConnection: serverSecure, auth: { user: user, pass: pass, } }; const transporter = nodemailer.createTransport(smtpTransport(config_email)); transporter.sendMail(options, (err, result) => { if (err) { r.errorCode = -6; r.errorMsg = ‘发送失败’; res.send(JSON.stringify®); } else { r.errorCode = 0; r.errorMsg = ‘成功’; res.send(JSON.stringify®); } if (!_.isNull(transporter)) { transporter.close(); transporter = null; } });
你先在服务器telnet smtp.exmail.qq.com 465
@jowang2016 我直接把你的代码拷过来,邮箱地址换成自己的可以的啊
问题解决了 坑在于不同的邮箱 配置不同 之前邮箱配置不对