これは私のsettingControllerです:
var sendSmtpMail = function (req,res) {
var transport = nodemailer.createTransport({
service:'gmail',
auth: {
user: "[email protected]",
pass: "qwerr@wee"
}
});
var mailOptions = {
from: "[email protected]",
to:'[email protected]',
subject: req.body.subject+"nodejs working ?",
text: "Hello world ?",
}
transport.sendMail(mailOptions, function(error, response){
if(error){
res.send("Email could not sent due to error: "+error);
console.log('Error');
}else{
res.send("Email has been sent successfully");
console.log('mail sent');
}
});
郵便配達員で私はそのようなエラーを受け取りました:
エラーのためメールを送信できませんでした:
Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials g7sm64435626pfj.29 - gsmtp
まず、 安全性の低いアプリがアカウントにアクセスすることを許可する必要があると思う Googleアカウントの設定-デフォルトではこの設定はoffそして、あなたは単にそれを回すだけですon。
次に、次のスクリプトを使用して、gmailアカウントからメールを送信し、yahooおよびhotmailアカウント。
const nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
Host: 'smtp.gmail.com',
port: 587,
secure: false,
requireTLS: true,
auth: {
user: '[email protected]',
pass: 'your.password'
}
});
let mailOptions = {
from: '[email protected]',
to: '[email protected]',
subject: 'Test',
text: 'Hello World!'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error.message);
}
console.log('success');
});
たとえば、前のコードをsend-email.jsに入れた場合、ターミナルを開いて次のように記述します。
node send-email
コンソールに-successが表示されるはずです。メールが正常に送信されたか、nodemailer
によってエラーメッセージが返されたか
最初に設定を行うことを忘れないでください- 安全性の低いアプリがアカウントにアクセスすることを許可 .
このコードがお役に立てば幸いです。がんばろう!
Googleアカウントで2要素認証を有効にしている場合、通常のパスワードを使用してプログラムでGmailにアクセスすることはできません。アプリ固有のパスワードを生成し、実際のパスワードの代わりに使用する必要があります。
手順:
スクリプトは次のようになります。
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: '[email protected]',
pass: 'YOUR-GENERATED-APP-PASSWORD'
}
});
これが誰かの助けになることを願っています。
Gmailサービスを使用しているため、メールはGmailにある必要があります。
var transport = nodemailer.createTransport({
service:'gmail',
auth: {
user: "[email protected]",
pass: "qwerr@wee"
}
});
var mailOptions = {
from: "[email protected]",
to:'[email protected]',
subject: req.body.subject+"nodejs working ?",
text: "Hello world ?",
}
transport.sendMail(mailOptions, function(error, response){
if(error){
res.send("Email could not sent due to error: "+error);
console.log('Error');
}else{
res.send("Email has been sent successfully");
console.log('mail sent');
}
});