Nodemailerを使用してnode.jsでメールを送信しようとしていますが、{ [Error: self signed certificate in certificate chain] code: 'ECONNECTION', command: 'CONN' }
のようなエラーが表示されます。
私のnode.jsコードは
var express = require('express');
var app = express();
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport('smtps://something%40gmail.com:[email protected]');
var mailOptions = {
to: '[email protected]',
subject: 'Hello ?',
text: 'Hello world ??',
html: '<b>Hello world ??</b>'
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
var server = app.listen(8900,function(){
console.log("We have started our server on port 8900");
});
「安全性の低いアプリ」を介してメールを送信できるようにするには、 リンク に移動し、[オンにする]を選択します。
( 詳細 安全性の低いアプリについて)
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
var mailAccountUser = '<YOUR_ACCOUNT_USER>'
var mailAccountPassword = '<YOUR_ACCOUNT_PASS>'
var fromEmailAddress = '<FROM_EMAIL>'
var toEmailAddress = 'TO_EMAIL'
var transport = nodemailer.createTransport(smtpTransport({
service: 'gmail',
auth: {
user: mailAccountUser,
pass: mailAccountPassword
}
}))
var mail = {
from: fromEmailAddress,
to: toEmailAddress,
subject: "hello world!",
text: "Hello!",
html: "<b>Hello!</b><p><a href=\"http://www.yahoo.com\">Click Here</a></p>"
}
transport.sendMail(mail, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
transport.close();
});
試してください https://github.com/nodemailer/nodemailer/issues/406
追加 tls: { rejectUnauthorized: false }
トランスポーターコンストラクターオプションへ
p.sメールサーバーのアドレスが本物の場合は、投稿することはお勧めできません。
私もこの問題に直面していました。私がしたことは次のコード行です。
_process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
_
smpttransportを作成する直前
たとえば、コードに次のように入力します。
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; var transporter = nodemailer.createTransport('smtps://something%40gmail.com:[email protected]');
@ user3985565が言ったことは正しいです。ただし、Gmailを使用している場合は、Gmailアカウントのいくつかの設定も変更する必要があります。具体的には、Gmailアカウントで「安全性の低いアプリを許可する」必要があります。これを行うには、次の手順に従ってください。