css 使用 nodemailer 发送 html gmail 后缺少一些规则

css is missing some rules after sending a html gmail with nodemailer

我正在尝试通过 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 不喜欢框阴影和一些 flex 属性吗?这可能是节点邮件程序的问题吗?任何信息表示赞赏

我想这是因为gmail支持这些属性。邮件服务支持的现代功能不多,这就是人们仍然使用表格的原因。可以参考gmail支持什么here