【问题标题】:Python HTML email : customizing output color-codingPython HTML 电子邮件:自定义输出颜色编码
【发布时间】:2012-07-29 12:14:36
【问题描述】:

我正在尝试发送带有颜色编码输出的 python (2.6) HTML 电子邮件。我的脚本创建了一个输出字符串,我将其格式化为一个表格(使用 str.format)。它在屏幕上打印正常:

abcd 24222 xyz A
abcd 24222 xyz B
abcd 24222 xyz A
abcd 24222 xyz D

但我还需要将其作为电子邮件发送,并且我需要有 A(比如绿色)、B(红色)等。我该怎么做?

我尝试的是在 A、B 等的前后附加 FONT COLOR = #somecolor & /FONT 标签。我编写了一个方法/模块,在适当的部分添加 table、tr 和 td 标签)字符串,以便消息像电子邮件中的 HTML 表格。但是,这种方法存在一个问题:
1)这并不总是正常工作。电子邮件(通过运行完全相同的脚本获得)是不同的,并且多次出现不匹配的成员和神秘的 tr 或 td 出现(每次在不同的位置)。即使我的 html 表创建是正确的

任何帮助将不胜感激。

【问题讨论】:

  • 您确信您的 HTML 创建代码是正确的,即使它输出了错误的 HTML?
  • 它并不总是输出错误的 HTML。有时一切都很完美,有时我会得到一个奇怪的 tr /td 标签挂在某个地方。
  • 好的,jforberg 3 是对的,虽然我的 html“看起来”对我有效,但内容并没有放在 body 标签中。一旦解决了这个问题,我上面提到的方法就可以正常工作了。
  • 不完全是。根据自己的想法,似乎是不同的电子邮件客户端:(

标签: python


【解决方案1】:

你需要的工具箱叫做email.mime 你可能想要这样的东西:

from email.mime.multipart import MIMEMultipart               
from email.mime.text import MIMEText                         

msg = MIMEMultipart()                                        
msg['Subject'] = u"A subject."                               
msg['From'] = "sender@example.org"                           
msg['To'] = "receiver@example.com"                           
body = MIMEText(MAIL_TEMPLATE.format(**mail_content),
                _subtype='html',                             
                _charset='UTF-8')                            
msg.attach(body) 

其中 MAIL_TEMPLATE 是一个 HTML 模板,而 mail_content 是一个字典,它将 HTML 中存在的键与要插入的值相关联。

【讨论】:

    【解决方案2】:

    好的。她对我有用,以防万一有人遇到同样的问题。我必须在 HTML 表中的每个标记之后输入回车符(即 \n)。一切正常。

    PS:关于这是否对你有帮助的一个线索是,我正在创建一大串 HTML。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      相关资源
      最近更新 更多