繁体   English   中英

Nodemailer google cloud function 错误代码:304

[英]Nodemailer google cloud function error code: 304

I have a firebase google cloud function that sends an email via javascript with cors and nodemailer.

我收到错误代码:304在某些情况下使用不同的目标电子邮件。 为什么偶尔会发生这种情况,并且仅在我更改 email 目标时才会发生。 有时它的作品,有时它没有。

通过更改 email 发送到目的地,条件有时如何可能是错误的? 我是否需要在 function 中以某种方式设置缓存?

  • 启用允许不安全的应用程序,然后启用验证码解锁

错误代码:304

notModified - 条件请求会成功,但条件为假,因此没有发送任何正文。

在此处输入图像描述

const nodemailer = require('nodemailer');
const cors = require('cors')({origin: true});


// Gmail configuration to Send eMail
let transporter = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: 587,
    secure: false,
    auth: {
        user: 'email',
        pass: 'passwors'
    }
});



exports.sendMailPasswordReset = functions.https.onRequest((req, res) => {

    cors(req, res, () => {


    const mailOptions = {
        from: 'team <team@example.app>', // Something like: Jane Doe <janedoe@gmail.com>
        to: 'example@gmail.com',
        subject: 'Password Reset', // email subject
        html: `html body` // email content in HTML
    };

    // returning result
    return transporter.sendMail(mailOptions, (erro, info) => {
        if(erro){
            return res.send(erro.toString());
        }
        return res.send('true');
});
});
});

你不能发回一个常数值。

return res.send('true');

错误代码 304:返回 false,因为它始终返回相同的常量。

为了解决这个问题,每次发送值都需要不同。

例如:

let random = Math.random().toString(36).substring(7);
return res.send('true_' + random);

我还添加了 cors

res.setHeader('Cache-Control', 'no-cache');

下面是对Error code 304的详细理解

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM