当我试图通过Nodemailer发送验证链接时,Google会阻止我的电子邮件

noj0wjuj  于 2023-03-22  发布在  Node.js
关注(0)|答案(1)|浏览(100)

我在我目前的项目中使用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;
    }
}
3pmvbmvn

3pmvbmvn1#

即使它不在同一个子域名上,其他人也可以在*.cyclic.sh下托管一个网站。因此,由于人们过去可能滥用该域名,Google已将该域名标记为可疑,并将这些电子邮件标记为垃圾邮件,正如顶部的错误所示。
你最好的办法是让你自己的域名,因为不会有滥用的历史,所以它不应该被标记。

相关问题