来自 Nodemailer 的一些电子邮件没有到达客户

Some emails from Nodemailer are not reaching the clients

我使用下面的代码通过 Nodemailer 发送注册验证电子邮件,结果我的一些客户要么没有收到任何东西,要么电子邮件变成了垃圾邮件。其他一些客户端可以正常收到邮件。我询问了 Google 支持,但他们说相同类型的电子邮件不可能进入某些用户的垃圾邮件文件夹和其他用户的收件箱文件夹。这就是为什么我在这里感到困惑。

顺便说一句,Google 与我确认 DKIM 和其他验证是正确的。发送的电子邮件已到达这些客户的邮箱。但是如果没有他们的同意,Google 不知道电子邮件是否实际存在或被发送到垃圾邮件文件夹。

function registerEmailSender(firstName, lastName, email, uuid) {
    console.log('registerEmailSender is triggered');
    console.log('email: ', email);

    let transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
            user: 'info@mydomain.com', // generated ethereal user
            pass: 'mypassword' // generated ethereal password
        },
    });

    const html = `
    Hi ` + firstName + `,<br>
    <br>
    Please click the link to active your account: <a href="https://www.google.com/url?q=https://example.com/sessions/email-verification/` + uuid + `">https://example.com/sessions/email-verification/` + uuid + `</a><br>
    <br>
    Sincerely, <br>
    My Team<br>
    `
    const mailOptions = {
        from: 'My Email <info@mydomain.com>', // sender address
        to: email, // list of receivers
        subject: 'Happy to have you here', // Subject line
        html: html
    };
    
    return transporter.sendMail(mailOptions, function (err, info) {
            console.log('sendMail is triggered');
        // if(err) 
        //     console.log('Error occurs: ', err)
        // else
        //     console.log('Email sent: ', info);

        if(err) {
            console.log('Error occurs: ', err)
        }
        else {
            console.log('Email sent: ', info);
        }
    });
}

事实证明,nodemailer 不是很可靠,因为它不会被识别为 'trusted application',除非您的服务器本身受到 Google 的信任。这似乎会降低您的声誉并导致电子邮件被拒绝。

我目前能找到的最佳解决方案是使用一些付费邮寄服务,例如 Mailchimp。如果不需要,请不要使用 Nodemailer。