首页 > 解决方案 > 如何使用 Python smtplib 使电子邮件文本加粗?

问题描述

我写了一个应用程序来检查股票价格,如果有重大变化,请拉新闻文章并通过电子邮件发送给我。一切都很好,除了我想将电子邮件文本的一部分格式化为粗体。我已经尝试了\033[1mSome Text\033[0m方法**Some Text**<b>Some Text</b>方法,但它们似乎都不起作用。这是构建消息和发送电子邮件的代码的简单示例。

message_header = f"\033[1m{company} ({symbol}) changed by {percent_change}% from ${round(prev_close, 2)}" \
                 f" to ${round(most_recent_close, 2)}.\033[0m\n\n" \
                 f"Here is the related news.\n\n"

for item in range(0, len(top_stories) - 1):
    my_message = my_message + f"From: {top_stories[item]['source']['name']}\n" \
                              f"Title: {top_stories[item]['title']}\n" \
                              f"Brief: {top_stories[item]['description']}\n" \
                              f"Url: {top_stories[item]['url']}\n\n"
            
    if my_message == "":
        my_message = message_header + "Unfortunately, there was no related news.\n\n\n"
    else:
        my_message = message_header + my_message + "\n"

    email_message = email_message + my_message

with smtplib.SMTP("smtp.gmail.com", port=587) as connection:
    connection.starttls()
    connection.login(user=MY_EMAIL, password=PASSWORD)
    connection.sendmail(
        from_addr=MY_EMAIL,
        to_addrs=recipients,
        msg=f"Subject:Stock Alerts!\n\n{email_message}\n\nRegards"
    )

我只想将我的 message_header 的第一行加粗,即ADOBE INC (ADBE) 从 $643.17 变为 $657.6 更改了 2.19%。

下面是我的实际电子邮件输出的样子,我得到的是** ** <b> </b>or [1m [0m而不是粗体文本。如果我打印到控制台,它会很好。如果有人可以解释我在这里缺少什么,我会很高兴。

[1mADOBE INC (ADBE) 从 643.17 美元上涨 2.19% 至 657.6 美元。[0米

这是相关新闻。

来自:路透社标题:“忘记十二月”:汽车制造商,零售商在供应链困境中削减电视广告 - 路透社

简介:多年来,豪华汽车品牌一直在用雷克萨斯“难忘的十二月”这样的口号来促进假日销售。

网址:https ://www.reuters.com/business/december-forget-automakers-retailers-cut-tv-ads-amid-supply-chain-woes-2021-11-11/

标签: python-3.xemailbold

解决方案


推荐阅读