У нас есть VPS 6 ГБ Grow Server для нашего продукта, мы создали приложение на разных языках, таких как 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, работает тот же скрипт в Shared host.