Node.js 使用nodeEmailer发送电子邮件不工作
我在这里有这个sendMail云功能,我正在尝试发送一封简单的电子邮件。我不确定我犯了什么错误,但每当我点击这个函数时,我总是在邮递员上收到Node.js 使用nodeEmailer发送电子邮件不工作,node.js,google-cloud-functions,Node.js,Google Cloud Functions,我在这里有这个sendMail云功能,我正在尝试发送一封简单的电子邮件。我不确定我犯了什么错误,但每当我点击这个函数时,我总是在邮递员上收到400错误请求错误。 另外,我正在为我的gmail帐户添加正确的凭据 这是我的云函数 const functions=require('firebase-functions') const cors=require('cors')({origin:true}); const admin=require(“firebase管理员”); const bodyPa
400错误请求
错误。
另外,我正在为我的gmail帐户添加正确的凭据
这是我的云函数
const functions=require('firebase-functions')
const cors=require('cors')({origin:true});
const admin=require(“firebase管理员”);
const bodyParser=require(“body parser”);
const nodemailer=require(“nodemailer”);
var smtpTransport=require('nodemailer-smtp-transport');
让transporter=nodeEmailer.createTransport(smtpTransport({
服务:“Gmail”,
认证:{
用户:'abc@gmail.com',
通行证:“12345”
}
}));
//发送电子邮件
exports.sendMail=functions.https.onRequest((请求,响应)=>{
//cors(请求,res,()=>{
//通过查询字符串获取dest电子邮件
res.set('Access-Control-Allow-Origin','*');
res.set('Access-Control-Allow-Methods','GET','POST');
res.set('Access-Control-Allow-Headers','Content-Type');
如果(请求方法==='OPTIONS'){
res.end();
}
其他的
{
如果(req.body.dest!=空| | req.body.dest!=未定义){
const dest=req.query.dest;
常量邮件选项={
摘自:“埃桑尼萨”,
致:dest,
主题:“我是个泡菜!!!”,//电子邮件主题
html:`泡菜里里克
`//HTML格式的电子邮件内容
};
//返回结果
return transporter.sendMail(邮件选项,(错误,信息)=>{
如果(错误){
返回res.send(erro);
}
返回res.send('Sended');
});
}
否则{
res.send(400{
“消息”:“所有字段都是必需的”
})
}
// });
}
});
您可以添加您的邮递员请求吗?查看您的代码,似乎请求req.body.dest中的字段为空或未定义。所有字段都是必填的
@hoangdv请尝试使用req.query.dest
,并提供您自己的凭据。这是一个帖子call@LucasDeAngelis是的,它已被取消,我已将其更改为req.query.dest
,但现在邮差给了我200,但显示了此响应{“code”:“EAUTH”,“response”:“535-5.7.8不接受用户名和密码。有关详细信息,请访问\n535 5.7.8https://support.google.com/mail/?p=BadCredentials x64sm1393872ill.75-gsmtp,“响应代码”:535,“命令”:“验证普通”}
我的Credentail是正确的
const cors = require('cors')({origin: true});
const admin = require("firebase-admin");
const bodyParser = require("body-parser");
const nodemailer = require("nodemailer");
var smtpTransport = require('nodemailer-smtp-transport');
let transporter = nodemailer.createTransport(smtpTransport({
service: 'Gmail',
auth: {
user: 'abc@gmail.com',
pass: '12345'
}
}));
//Send email
exports.sendMail = functions.https.onRequest((request, responde) => {
// cors(req, res, () => {
// getting dest email by query string
res.set('Access-Control-Allow-Origin', '*');
res.set('Access-Control-Allow-Methods', 'GET', 'POST');
res.set('Access-Control-Allow-Headers', 'Content-Type');
if(req.method === 'OPTIONS') {
res.end();
}
else
{
if(req.body.dest != null || req.body.dest != undefined) {
const dest = req.query.dest;
const mailOptions = {
from: 'Ehsan Nisar <ABC@gmail.com>',
to: dest,
subject: 'I\'M A PICKLE!!!', // email subject
html: `<p style="font-size: 16px;">Pickle Riiiiiiiiiiiiiiiick!!</p>
<br />
<img src="https://images.prod.meredith.com/product/fc8754735c8a9b4aebb786278e7265a5/1538025388228/l/rick-and-morty-pickle-rick-sticker" />
` // email content in HTML
};
// returning result
return transporter.sendMail(mailOptions, (erro, info) => {
if(erro){
return res.send(erro);
}
return res.send('Sended');
});
}
else {
res.send(400, {
"message": "All fields are required"
})
}
// });
}
});