Nodemailer google 云函数错误代码:304
Nodemailer google cloud function error code: 304
我有一个 firebase google 云功能,它通过 javascript 使用 cors 和 nodemailer 发送电子邮件。
我收到 错误代码: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
我有一个 firebase google 云功能,它通过 javascript 使用 cors 和 nodemailer 发送电子邮件。
我收到 错误代码: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