我在我目前的项目中使用nodemailer向我的用户发送验证链接,但它不起作用。
我在当前项目中使用nodemailer向用户发送验证链接。当项目处于开发模式时,邮件成功发送给用户,但当我在www.example.com上部署Web应用程序时cyclic.sh,邮件没有发送。
const nodemailer = require('nodemailer');
const jwt = require("jsonwebtoken");
const path = require("path");
if(process.env.NODE_ENV !== "production") {
require('dotenv').config({ path: path.join(__dirname, "..", ".env") });
}
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.MAIL_ID,
pass: process.env.MAIL_PASSWORD
}
});
module.exports = {
sendVerificationLink: async (id, email, name) => {
const token = jwt.sign({
data: { userid: id, name: name, email: email },
exp: Math.floor(Date.now() / 1000) + (60 * 60)
}, process.env.ACCESS_TOKEN_SECRET);
const mailOptions = {
from: process.env.MAIL_ID,
to: `${email}`,
subject: "Verify your email",
html: `
<p>Hi ${name}, please click on the following link to verify your email</p>
<a href = "http://${process.env.DOMAIN}/auth/verify/${token}">Verify your email</a>
`
};
await transporter.sendMail(mailOptions);
return;
}
}
1条答案
按热度按时间3pmvbmvn1#
即使它不在同一个子域名上,其他人也可以在
*.cyclic.sh
下托管一个网站。因此,由于人们过去可能滥用该域名,Google已将该域名标记为可疑,并将这些电子邮件标记为垃圾邮件,正如顶部的错误所示。你最好的办法是让你自己的域名,因为不会有滥用的历史,所以它不应该被标记。