Nodemailer google 云函数错误代码:304

Nodemailer google cloud function error code: 304

我有一个 firebase google 云功能,它通过 javascript 使用 corsnodemailer 发送电子邮件。

我收到 错误代码:304 在某些情况下使用不同的目标电子邮件。 为什么这种情况偶尔会发生,而且只有在我更改电子邮件目的地时才会发生。有时有效,有时无效。

如何通过更改电子邮件发送到目的地来使条件有时为假?我需要在函数中以某种方式设置缓存吗?

错误代码:304

notModified - The conditional request would have been successful, but the condition was false, so no body was sent.

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