table.tableize-table r 函数在 .html 中运行良好,但无法通过 MIMEText 在 Gmail 中显示

table.tableize-table r function works well in .html, but not display in Gmail through MIMEText

新手正在 html。我在 .html 中得到以下设置,在浏览器中打开文件时它按预期工作 (chrom/safari)。

(在浏览器中)-->(在 gmail 中失败)

但是,当我使用 MIMEText 发送相同的 html 内容时,它失败了:none 的颜色代码功能被保留。我尝试在 table.tableizer-table、字体大小、border、none 中编辑的属性在通过电子邮件发送时有效。

<html><body>
    <style type="text/css">
        table.tableizer-table {
        font-size: 12px;
        border: 1px solid #CCC;
        font-family: Arial, Helvetica, sans-serif;
    }
        .tableizer-table td {
        padding: 4px;
        margin: 3px;
        border: 1px solid #CCC;
    }
        .tableizer-table th {
        background-color: #009452;
        color: #FFF;
        font-weight: bold;
    }
        .tableizer-firstrow td {
        background-color: #009452;
        color: #FFF;
        display: inline-block;
    }

    </style>

    <table class="tableizer-table">

    <thead>
        <tr style="background-color:#104E8B; color: #ffffff;"><td align="center" rowspan="1" colspan="5" ><strong>RECORD <strong></td></tr>
    </thead>

    <tbody>

    <tr class="tableizer-firstrow"><th style="background-color: #CCC;color: #FFF;">GOOD COMPANY</th><th>EMAIL</th><th>PHONE</th><th>ADDRESS</th></tr>
    <tr><td>company2</a></td><td style="text-align: right;">0</td><td>100</td><td>1st Ave</td></tr>
    <tr class="tableizer-firstrow"><th style="background-color: #CCC;color: #FFF;">BAD COMPANY</th><th>EMAIL</th><th>PHONE</th><th>ADDRESS</th></tr>
    <tr><td>company2</a></td><td style="text-align: right;">0</td><td>212</td><td>Fifth Ave</td></tr>

  </tbody>
  </table>
</body>
</html>

我主要在 python 上工作,电子邮件发送如下:

import smtplib, ssl
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

message = MIMEMultipart("alternative", None, [MIMEText(one_email_html, 'html')])
receiver = 'aaa@gmail.com'
sender_email = 'bbb@gmail.com'
print('Type in password')
password = input()
message["Subject"] = subject
message["From"] = sender_email
message["To"] = receiver

# Create secure connection with server and send email
context = ssl.create_default_context()
with smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context) as server:
    server.login(sender_email, password)
    server.sendmail(
        sender_email, receiver, message.as_string()
    )

其中 one_email_html 是 html 内容的“字符串”。

您应该将 <style> 部分放在 <head>...</head> 标签内。

其次,您应该内联所有嵌入的样式。这就是为什么它有效:<tr style="background-color:#104E8B; color: #ffffff;">,但你的 类 没有。一些电子邮件客户端,例如某些形式的 Gmail,以及大多数桌面和网络邮件环境,根本不支持嵌入式样式(<style> 内的样式)。

第三,也许您需要使用完整的十六进制代码,而不是缩短的十六进制代码。所以 <th style="background-color: #CCC;color: #FFF;"> 变成: <th style="background-color: #CCCCCC;color: #FFFFFF;">,例如