【问题标题】:Sending email with color formatting in Python [duplicate]在Python中发送带有颜色格式的电子邮件[重复]
【发布时间】:2017-11-03 12:05:18
【问题描述】:

我有以下 Python 代码,用于从文件 filename 的内容向我的 ID 发送电子邮件。我正在尝试发送带有颜色格式文本的电子邮件。

有什么想法请指教。

def ps_Mail():
    filename = "/tmp/ps_msg"
    f = file(filename)
    if os.path.exists(filename) and os.path.getsize(filename) > 0:
        mailp = Popen(["/usr/sbin/sendmail", "-t", "-oi"], stdin=PIPE)
        msg = MIMEMultipart('alternative')
        msg['To'] = "karn@abc.com"
        msg['Subject'] = "Uhh!! Unsafe rm process Seen"
        msg['From'] = "psCheck@abc.com"
        msg1 = MIMEText(f.read(),  'text')
        msg.attach(msg1)
        mailp.communicate(msg.as_string())
ps_Mail()

【问题讨论】:

  • 既然有smtplib 模块,为什么还要使用Popen() 来驱动sendmail?如果尚未完成,则必须将文本包装成 HTML,然后设置正确的 MIMEText 属性
  • 您将要使用 HTML 来声明颜色。请参阅this related question 了解如何执行此操作。例如,如果您希望将所有文件 f 作为一种颜色,请尝试:msg1 = MIMEText("<p style=\"color:red\">"+f.read()+"</p>", 'html')
  • 接受的问题@DanielR.Livingston 链接到的答案也使用smtplib,正如我所建议的那样。
  • @Anthon,由于一些跨平台检查和限制,我正在使用 Popen,尽管 smtplib 我明白如果适合环境,我会更适合。此外,我不想使用 HTML 作为它只是一个文本消息来传递电子邮件。
  • @DanielR.Livingston,很高兴收到您的建议。

标签: python html mime


【解决方案1】:

这是我用来发送 HTML 电子邮件的 sn-p。

另请阅读this

import smtplib

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

msg = MIMEMultipart('alternative')

msg['Subject'] = "Link"
msg['From'] = "my@email.com"
msg['To'] = "your@email.com"

text = "Hello World!"

html = """\
<html>
  <head></head>
  <body>
    <p style="color: red;">Hello World!</p>
  </body>
</html>
"""

part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')

msg.attach(part1) # text must be the first one
msg.attach(part2) # html must be the last one

s = smtplib.SMTP('localhost')
s.sendmail(me, you, msg.as_string())
s.quit()

【讨论】:

  • Szabolcs ,您的代码看起来不错,即使我已经在我的另一个代码中使用了 HTML 格式,但在这里我不想要它的 HTML 国家。它只是发送纯文本。
  • AFAIK 纯文本电子邮件不支持颜色。
猜你喜欢
  • 1970-01-01
  • 2015-08-04
  • 2016-04-29
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 2017-02-04
相关资源
最近更新 更多