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;">
,例如
新手正在 html。我在 .html 中得到以下设置,在浏览器中打开文件时它按预期工作 (chrom/safari)。
(在浏览器中)
但是,当我使用 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;">
,例如