我们为我们的产品配备了VPS 6GB增长服务器,我们制作了各种语言的应用程序,例如Node Js,Php,Java。因此在这里,我们向用户提供电子邮件通知。
问题是我们无法将电子邮件发送给我们的用户,我们已经用不同的语言创建了电子邮件脚本,但是电子邮件无法正常工作。
复制步骤:
我们创建节点js电子邮件脚本,当我们在下面运行脚本时发生错误
代码为
'use strict';
var http = require('http');
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: 'wemail.example.com',
port: 465,
secure: true, // true for 465, false for other ports
auth: {
user: "info@example.com", // generated ethereal user
pass: "password" // generated ethereal password
}
});
// setup email data with unicode symbols
let mailOptions = {
from: '"Teest " <info@exapmle.com>', // sender address
to: 'alpesh.daddyscode@gmail.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...
}); });
输出为
Error: self signed certificate
at TLSSocket.<anonymous> (_tls_wrap.js:1105:38)
at emitNone (events.js:106:13)
at TLSSocket.emit (events.js:208:7)
at TLSSocket._finishInit (_tls_wrap.js:639:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:469:38) code: 'ECONNECTION', command: 'CONN' }
我们尝试使用SSL更改主机,不使用SSL,更改端口,更改MX记录,更改主机名...不是一回事,但是当此脚本在共享主机服务器上运行时,脚本运行良好,并且邮件已成功发送。
在JAVA中发生了相同的问题,在VPS中不起作用,在共享主机中使用相同的脚本。