Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用nodeEmailer发送电子邮件不工作_Node.js_Google Cloud Functions - Fatal编程技术网

Node.js 使用nodeEmailer发送电子邮件不工作

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

我在这里有这个sendMail云功能,我正在尝试发送一封简单的电子邮件。我不确定我犯了什么错误,但每当我点击这个函数时,我总是在邮递员上收到
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"
            })
        }
    // });  
    }  
});