uma*_*aja 17 node.js nodemailer
这是我的settingController:
var sendSmtpMail = function (req,res) {
var transport = nodemailer.createTransport({
service:'gmail',
auth: {
user: "asdfqweerrccb@limitlesscircle.com",
pass: "qwerr@wee"
}
});
var mailOptions = {
from: "transactions@limitlesscircle.com",
to:'umaraja1124@gmail.com',
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');
}
});
Run Code Online (Sandbox Code Playgroud)
在邮差我得到了这样的错误:
由于错误,无法发送电子邮件:
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
Run Code Online (Sandbox Code Playgroud)
cod*_*tex 25
我认为,首先你需要允许不够安全的应用访问帐户,在您的谷歌帐户设置-默认情况下此设置为关闭,你只需把它上.
然后我使用以下脚本从gmail帐户发送电子邮件,也使用yahoo和hotmail帐户进行测试.
const nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
secure: false,
requireTLS: true,
auth: {
user: 'your.gmail.account@gmail.com',
pass: 'your.password'
}
});
let mailOptions = {
from: 'your.gmail.account@gmail.com',
to: 'receivers.email@domain.com',
subject: 'Test',
text: 'Hello World!'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error.message);
}
console.log('success');
});
Run Code Online (Sandbox Code Playgroud)
如果你把前面的代码放在send-email.js中,打开终端并写:
node send-email
Run Code Online (Sandbox Code Playgroud)
您应该在控制台中看到 - 成功,如果电子邮件发送成功或返回的错误消息nodemailer
不要忘记首先进行设置 - 允许安全性较低的应用访问帐户.
我希望这段代码对你有用.祝好运!
小智 10
如果您在自己的Google帐户中启用了双因素身份验证,则无法使用常规密码以编程方式访问Gmail.您需要生成特定于应用程序的密码,并使用该密码代替您的实际密码.
脚步:
您的脚本现在看起来像这样:
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'YOUR-GMAIL-USERNAME@gmail.com',
pass: 'YOUR-GENERATED-APP-PASSWORD'
}
});
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助别人.
小智 10
2022 年 5 月,Google 删除了安全性较低的应用程序选项 ( https://myaccount.google.com/lesssecureapps )。
因为将第三方连接到 Google 存在风险。
因此,Gmail 提供了应用程序密码。您可以在应用程序(应用程序)中使用
复制应用程序密码后,只需在https://www.smtper.net/上注册 smtp (勾选所有选项,不要留下任何要填写的字段。)然后单击“提交”(检查您的 Gmail帐户)。
节点邮件程序代码
const nodemailer = require("nodemailer");
const smtpTransport = require("nodemailer-smtp-transport");
var transporter = nodemailer.createTransport(
smtpTransport({
service: "gmail",
host: "smtp.gmail.com",
port: 587,
secure: false,
auth: {
user: "your.gmail.account@gmail.com",
pass: "app password",
},
})
);
let mailOptions = {
from: "your.gmail.account@gmail.com",
to: "receivers.email@domain.example",
subject: "Test",
text: "Hello World!",
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error.message);
}
console.log("success");
});
Run Code Online (Sandbox Code Playgroud)
为了更好地理解,请点击下面给出的两个链接。
tru*_*cng -1
您正在使用 gmail 服务,因此您的邮件必须在 gmail 中:
var transport = nodemailer.createTransport({
service:'gmail',
auth: {
user: "asdfqweerrccb@gmail.com",
pass: "qwerr@wee"
}
});
var mailOptions = {
from: "transactions@gmail.com",
to:'umaraja1124@gmail.com',
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');
}
});
Run Code Online (Sandbox Code Playgroud)