首页 > 解决方案 > 使用 nodemailer 发送 html gmail 后,css 缺少一些规则

问题描述

我正在尝试通过nodemailer将我拥有的一些html作为电子邮件发送到我的gmail帐户。

所以一开始,我像这样以纯文本形式发送我的电子邮件,以检查是否所有内容都在那里......

    const email =
    {
        from:    emailAddress,
        to:      sendTo,
        subject: title,
        text:    emailBody
    };

    //Send the email
    transporter.sendMail(email, function(error, info)
    {
        //If there was an error, return false as it failed to send, else true
        const emailSent = (error) ? false : true;
        return resolve(emailSent);
    });

这发送得很好,我所有的 html 都以纯文本形式存在,我的所有 css 规则都完好无损。

然后我改变

text: emailBody

html: emailBody

这会将我的正文字符串解析为 html,当我打开电子邮件时,缺少一些 css 规则。

例如,我有一个开始的 li 标签,这是我的 js 中的一个字符串,它是电子邮件正文的一部分......

'<li style="-webkit-box-shadow: 0px 0px 3px 1px rgba(0,0,0,0.3); -moz-box-shadow: 0px 0px 3px 1px rgba(0,0,0,0.3); box-shadow: 0px 0px 3px 1px rgba(0,0,0,0.3); border-radius: 10px; padding: 20px; display: flex; justify-content: center; height: 90px; margin: 10px 0;">'

但是在我的电子邮件中是这样的......

<li style="border-radius:10px;padding:20px;display:flex;height:90px;margin:10px 0">

所以你可以看到我的盒子阴影和我的 justify-content 规则一起消失了,但其余的都完好无损。

有人知道为什么这样做吗?gmail 不喜欢盒子阴影和一些弹性属性吗?节点邮件程序可能有问题吗?任何信息表示赞赏

标签: javascriptcssnode.jsgmailnodemailer

解决方案


我认为这是因为 gmail 支持这些属性。邮件服务支持的现代功能并不多,这就是为什么仍然使用表格的原因。您可以在此处咨询gmail支持的内容


推荐阅读