何が欠けているのかわかりません。Nodemailerの例を使用します。
var nodemailer = require("nodemailer");
// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "[email protected]",
pass: "userpass"
}
});
// setup e-mail data with unicode symbols
var mailOptions = {
from: "Fred Foo ✔ <[email protected]>", // sender address
to: "[email protected], [email protected]", // list of receivers
subject: "Hello ✔", // Subject line
text: "Hello world ✔", // plaintext body
html: "<b>Hello world ✔</b>" // html body
}
// send mail with defined transport object
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
// if you don't want to use this transport object anymore, uncomment following line
//smtpTransport.close(); // shut down the connection pool, no more messages
});
ユーザーを変更して、Gmailアカウント情報に認証を渡し(値も試してみました)、「宛先」のメールアドレスを自分のメールアドレスに変更しました。私は得る:
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
何が足りないのですか?これ以上のことをする必要があるというドキュメントには何も表示されないのに、なぜ機能しないのですか?前もって感謝します。
ファイアウォールの問題でした。コードに問題はなかったことがわかりました。エラーメッセージが何を意味するのか理解できませんでした。
次のステップ:
Gmailアカウントにログインします。
設定タブでpop3を有効にする
安全性の低いアプリを有効にする: Gmailアカウントの安全性の低いアプリを有効にする
Unlock Captchaの表示: nlock Captchaの表示
定義された電子メールオプションと送信
var mailOptions = {
Host: 'smtp.gmail.com',
port: 465,
secure: true, // use SSL
auth: {
user: '[email protected]',
pass: 'password'
}
}
mailer = nodemailer.createTransport(mailOptions);
mailer.sendMail({
....
}, function(err, response) {
if (err) {
console.log(err);
}
console.log(response);
});
このブロックコードがお役に立てば幸いです。
また、Gmailアカウントを使用してメールを送信していました。ノードメーラーが正しく機能するには、Googleからのアプリケーション固有のパスワードが必要になる場合があります。
ECONNREFUSEDは、これが何らかの接続またはファイアウォールの問題であることを示しています。
同じマシンからの他のアプリケーション、たとえばopensslを使用してsmtp.gmail.comポート465に接続できますか?
openssl s_client -connect smtp.gmail.com:465
新しいnodemailerバージョンを使用する場合
nodemailer.createTransport({
Host,
port,
secure:,
auth:{
user,
pass
}
})
詳細は https://github.com/andris9/nodemailer-wellknown を参照してください
実際の問題の修正は、[〜#〜] service [〜#〜]を配置する必要があることです。 ENVIRONMENTVARIABLESを使用するとより良い
var transporter = nodemailer.createTransport({
service: process.env.EMAIL_SERVICE,
auth: {
user:process.env.EMAIL_USER,
pass:process.env.EMAIL_PASSWORD
}
})