nodemailer 不能在本地主机或云上工作?
nodemailer not working on either localhost or cloud?
我正在尝试使用 nodemailer 通过我的本地系统和 heroku 应用程序发送邮件,但在这两种情况下我都超时这里是我的代码,现在我已经尝试使用 gmail 和 smtp 电子邮件但是仍然没有任何效果
exports.sendMail=function(req,res)
{
if(req.METHOD=="POST")
{
var email=req.body.email;
var name=req.body.name;
var phone=req.body.phone;
var content=`
<ul>
<p>You have New Enquiry</p>
<h3>Contact Details</h3>
<ul>
<li>Email:email</li>
<li>Name:name</li>
<li>Phone:phone</li>
</ul>
`;
let transporter=nodemailer.createTransport({
host:'chi-node30.websitehostserver.net ',
port:465,
secure:true,
auth:
{
user:'chiragunplugged@chiragunplugged.com',
pass:'foo123'
},
tls:{
rejectUnauthorized:false
}
});
let mailOptions={
from:'<chiragunplugged@chiragunplugged.com',
to:'atul.11192@gmail.com',
subject:'Enquiry from datadock',
text:'you have got enquiry',
html:content
};
transporter.sendMail(mailOptions,(err,info)=>{
if(err){
res.render('final.ejs',{message:err});
return console.log(err);
}
var success="message sent";
res.render('final.ejs',{message:success});
});
}
};
请检查代码,让我知道我可以做哪些更改才能使其正常工作。
您可能实际上 运行 Heroku 或本地主机上的 SMTP 服务器,nodemailer 不会为您做这件事。您可以使用 google 的免费 smtp 服务器,详见此处 https://www.digitalocean.com/community/tutorials/how-to-use-google-s-smtp-server 这将传输您的邮件。
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true, // true for 465, false for other ports
auth: {
user: account.user, // generated ethereal user
pass: account.pass // generated ethereal password
}
});
将您的传输器更改为上述内容并提供 gmail 登录详细信息,然后如果您在邮件选项中有相同的详细信息,它将按照选项中的描述从 chiragunplugged@chiragunplugged.com
中显示。
在本地主机上它不起作用,因为发送电子邮件需要安全可靠的连接,但使用 gmail[smtp(简单邮件传输协议)] 我们可以实现它的功能。
别忘了先进行设置 - Allow less secure apps to access account.
已获得访问 gmail 帐户的权限。
默认情况下,此设置处于关闭状态,您只需将其打开。现在继续编码部分。
/////////////////////--------------------- --------------------------------------///////// //////////////////////////
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', // like : abc@gmail.com
pass: 'your.gmailpassword' // like : pass@123
}
});
let mailOptions = {
from: 'your.gmail.account@gmail.com',
to: 'receivers.email@domain.com',
subject: 'Check Mail',
text: 'Its working node mailer'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error.message);
}
console.log('success');
});
我正在尝试使用 nodemailer 通过我的本地系统和 heroku 应用程序发送邮件,但在这两种情况下我都超时这里是我的代码,现在我已经尝试使用 gmail 和 smtp 电子邮件但是仍然没有任何效果
exports.sendMail=function(req,res)
{
if(req.METHOD=="POST")
{
var email=req.body.email;
var name=req.body.name;
var phone=req.body.phone;
var content=`
<ul>
<p>You have New Enquiry</p>
<h3>Contact Details</h3>
<ul>
<li>Email:email</li>
<li>Name:name</li>
<li>Phone:phone</li>
</ul>
`;
let transporter=nodemailer.createTransport({
host:'chi-node30.websitehostserver.net ',
port:465,
secure:true,
auth:
{
user:'chiragunplugged@chiragunplugged.com',
pass:'foo123'
},
tls:{
rejectUnauthorized:false
}
});
let mailOptions={
from:'<chiragunplugged@chiragunplugged.com',
to:'atul.11192@gmail.com',
subject:'Enquiry from datadock',
text:'you have got enquiry',
html:content
};
transporter.sendMail(mailOptions,(err,info)=>{
if(err){
res.render('final.ejs',{message:err});
return console.log(err);
}
var success="message sent";
res.render('final.ejs',{message:success});
});
}
};
请检查代码,让我知道我可以做哪些更改才能使其正常工作。
您可能实际上 运行 Heroku 或本地主机上的 SMTP 服务器,nodemailer 不会为您做这件事。您可以使用 google 的免费 smtp 服务器,详见此处 https://www.digitalocean.com/community/tutorials/how-to-use-google-s-smtp-server 这将传输您的邮件。
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true, // true for 465, false for other ports
auth: {
user: account.user, // generated ethereal user
pass: account.pass // generated ethereal password
}
});
将您的传输器更改为上述内容并提供 gmail 登录详细信息,然后如果您在邮件选项中有相同的详细信息,它将按照选项中的描述从 chiragunplugged@chiragunplugged.com
中显示。
在本地主机上它不起作用,因为发送电子邮件需要安全可靠的连接,但使用 gmail[smtp(简单邮件传输协议)] 我们可以实现它的功能。
别忘了先进行设置 - Allow less secure apps to access account.
已获得访问 gmail 帐户的权限。
默认情况下,此设置处于关闭状态,您只需将其打开。现在继续编码部分。
/////////////////////--------------------- --------------------------------------///////// //////////////////////////
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', // like : abc@gmail.com
pass: 'your.gmailpassword' // like : pass@123
}
});
let mailOptions = {
from: 'your.gmail.account@gmail.com',
to: 'receivers.email@domain.com',
subject: 'Check Mail',
text: 'Its working node mailer'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error.message);
}
console.log('success');
});