我有一个 firebase 谷歌云功能,可以通过 javascript 使用cors和nodemailer发送电子邮件。在某些情况下,我收到不同目标电子邮件的错误代码:304 。为什么这种情况偶尔会发生,并且只有当我更改电子邮件目的地时才会发生。有时它有效,有时则无效。通过更改发送到目的地的电子邮件,条件有时会是错误的吗?我需要在函数中以某种方式设置缓存吗?启用允许不安全的应用程序,然后启用验证码解锁错误代码:304notModified - 条件请求本来会成功,但条件为假,因此没有发送正文。const nodemailer = require('nodemailer');const cors = require('cors')({origin: true});// Gmail configuration to Send eMaillet 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');});});});
1 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
您不能发回常量值。
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');
添加回答
举报
0/150
提交
取消