【问题标题】:Change Some Colors of Email body in Python在 Python 中更改电子邮件正文的某些颜色
【发布时间】:2019-09-15 05:36:58
【问题描述】:

我正在尝试使用 MIMEMultipart 更改电子邮件正文中某些文本的颜色。 此 python 代码的目的是在某些情况下更改颜色。所以如果字典中有“天”这个词,那么颜色应该是某种东西,如果不是,颜色应该是黑色。但不幸的是,它只发送字典的最后一个值,而不是所有值。 应该提到,在打印的情况下,它会正确显示所有值。

msg = MIMEMultipart('alternative')
msg['Subject'] = 'License Checker'
me = msg['From'] = "python@mail.com"
you = msg['To'] = "me@mail.com"
for key, value in my_dic.items():
    if 'days' in value:
        html1 = 'Expiration Date : \n {}{} \n\n '.format(key,value) + '\n'
        msg.attach(MIMEText(html1, "html"))
    if 'days' not in value:
        html = """<html>
                <head></head>
                  <body>
                    <p style="color: red;">""" + key + value + """</p>
                  </body>
                </html>
                """
        msg.attach(MIMEText(html, 'html'))
server = smtplib.SMTP('a.b.c.d')
server.send_message(msg)

【问题讨论】:

  • 如果没有 smtp 服务器,我无法复制错误。我在循环之后做了print(msg),看起来它考虑了字典的所有值。您可以编辑问题以显示正在发送的消息吗?
  • 我对 print(msg) 也没有任何问题。问题出在发送邮件时。
  • 首先在for-loop 中创建一个包含所有信息的html,然后在for-loop 之后将此单个HTML 附加到邮件中。
  • @furas 请让我举例说明一下。
  • 你不知道如何连接字符串吗? "&lt;p&gt;...&lt;/p&gt;" + "&lt;p&gt;...&lt;/p&gt;" ?或html = html + "&lt;p&gt;...&lt;/p&gt;" ?

标签: python html python-3.x email html-email


【解决方案1】:

我不确定,但邮件可能只需要一个 HTML 附件作为纯文本的替代品,因此请创建一个包含所有信息的 HTML 字符串并仅创建一个附件。

msg = MIMEMultipart('alternative')
msg['Subject'] = 'License Checker'
me = msg['From'] = "python@mail.com"
you = msg['To'] = "me@mail.com"

html = '<html><head></head><body>'

for key, value in my_dic.items():
    if 'days' in value:
        html += 'Expiration Date : \n {}{} \n\n \n'.format(key, value)
    else:
        html += '<p style="color: red;">{}{}</p>'.format(key, value)

html +=  '</body></html>'

msg.attach(MIMEText(html, 'html'))

server = smtplib.SMTP('a.b.c.d')
server.send_message(msg)

【讨论】:

    猜你喜欢
    • 2011-11-17
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 2015-02-01
    • 2020-06-16
    • 2020-02-12
    相关资源
    最近更新 更多