Javascript 在gmail中使用nodeEmailer
我一直在阅读多个论坛,花了好几个小时试图让我的Nodemailer应用程序工作,但它根本不工作。我采纳了那些能够让他们工作的人的建议,但结果对我来说仍然是一样的。我在下面发布了一个错误,每当我试图在我创建的表单上发送POST请求时,我都会收到这个错误 更新: 我已经设法让代码链接到电子邮件,但现在我无法将数据输入到联系人表单中提交到电子邮件。我有点新,所以如果我听起来没有经验,我是。我很感激你的耐心。以下是当前代码:Javascript 在gmail中使用nodeEmailer,javascript,node.js,nodemailer,Javascript,Node.js,Nodemailer,我一直在阅读多个论坛,花了好几个小时试图让我的Nodemailer应用程序工作,但它根本不工作。我采纳了那些能够让他们工作的人的建议,但结果对我来说仍然是一样的。我在下面发布了一个错误,每当我试图在我创建的表单上发送POST请求时,我都会收到这个错误 更新: 我已经设法让代码链接到电子邮件,但现在我无法将数据输入到联系人表单中提交到电子邮件。我有点新,所以如果我听起来没有经验,我是。我很感激你的耐心。以下是当前代码: app.post('/contact',urlencodedParser,(r
app.post('/contact',urlencodedParser,(req,res)=>{
const output= `
<p>You have a new contact request</p>
<h3>Contact Details</h3>
<ul>
<li> Name:${req.body.name}</li>
<li> Email:${req.body.email}</li>
<li> Message:${req.body.message}</li>
</ul>
`;
async function main(){
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user:'ME@EMAIL.COM',
pass: process.env.PASSWORD
},
});
// send mail with defined transport object
let info = await transporter.sendMail({
from: req.body.email, // sender address
to: "me@email.com", // list of receivers
subject: "Hello ✔", // Subject line
html: `${req.body.message}` // html body
});
console.log("Message sent: %s", info.messageId);
console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
}
main().catch(console.error);
res.render('contact')
})
app.post('/contact',urlencodedParser,(req,res)=>{
常量输出=`
您有一个新的联系请求
联系方式
- 名称:${req.body.Name}
- 电子邮件:${req.body.Email}
- 消息:${req.body.Message}
`;
异步函数main(){
让transporter=nodeEmailer.createTransport({
主机:“smtp.gmail.com”,
港口:465,
安全:是的,
认证:{
用户:'ME@EMAIL.COM',
通过:process.env.PASSWORD
},
});
//使用定义的传输对象发送邮件
let info=wait transporter.sendMail({
发件人:req.body.email,//发件人地址
至:me@email.com“,//接收者列表
主题:“你好✔", // 主题行
html:`${req.body.message}`//html body
});
console.log(“发送的消息:%s”,info.messageId);
log(“预览URL:%s”,nodeEmailer.getTestMessageUrl(info));
}
main().catch(console.error);
res.render('contact')
})
这只是一个忘记密码控制器,它向用户发送密码邮件。
emailConfig.js
var email = "xxxx@gmail.com";
const password = "xxxxxx";
const service = "gmail";
module.exports = {
service: service,
email: email,
password: password
}
Controller.js
var transporter = nodemailer.createTransport({
service : nodeMailerConfig.service,
auth :{
user : nodeMailerConfig.email,
pass : nodeMailerConfig.password
}
});
const mailOptions = {
from: nodeMailerConfig.email,
to: req.body.email,
subject: "Forgot Password",
html: `<p>Hi ${req.body.email}</p> <br/>
<pre>Your password is ${randomPassword}</pre><br/>
<pre>Cheers, OpenBox Team</pre>`
}
transporter.sendMail(mailOptions,(mailerr,info)=> {
if(mailerr){
res.status(400).json("Unable to send email");
}else{
res.status(201).json(info);
}
})
var transporter=nodeEmailer.createTransport({
服务:nodeEmailerConfig.service,
认证:{
用户:nodeEmailerConfig.email,
密码:nodeEmailerConfig.password
}
});
常量邮件选项={
发件人:nodeEmailerConfig.email,
发送至:req.body.email,
主题:“忘记密码”,
html:`Hi${req.body.email}
您的密码是${randomPassword}
干杯,OpenBox团队`
}
transporter.sendMail(mailpoptions,(mailerr,info)=>{
if(mailerr){
res.status(400).json(“无法发送电子邮件”);
}否则{
res.status(201).json(info);
}
})
请确保您在gmail中打开了不安全的电子邮件设置,否则大部分时间邮件将被拒绝或放入垃圾邮件箱。“而且根本不起作用”:请编辑您的问题,更准确地解释它不起作用的原因。您是否收到错误消息,确切地说是哪一条(请复制/粘贴)如果没有,什么不起作用?此外,Gmail拒绝包含不可信链接和主机名的邮件。我用收到的错误更新了我的帖子。