【问题标题】:sendgrid html overwrties text while smtplib does notsendgrid html 覆盖文本,而 smtplib 没有
【发布时间】:2014-12-17 20:44:42
【问题描述】:

当我使用 sendgrid python 库时

两者都用

message.set_text('Body')
message.set_html('<html><body>Stuff, you know?</body></html>')

我看到 html 重写了文本。 如果我使用 smtplib,我可以在电子邮件中同时包含文本和 html 部分。 在 sendgrid 中实现相同的任何解决方案?

【问题讨论】:

  • 你在哪里看到它被覆盖了?
  • 在我收到的消息中。如果我不 set_html ..那么我会看到“body”,如果我做了 set_html,我会看到“stuff, you know”..adn 然后退订消息
  • 我认为这与您的电子邮件客户端如何阅读邮件有关。
  • 电子邮件客户端是gmail
  • 确切地说,这是我在第一种情况下在 gmail 上看到的

标签: python html text sendgrid


【解决方案1】:

SendGrid 将正确地将 HTML 作为文本电子邮件的“替代”正文提供。

如果您的电子邮件客户端支持 HTML 电子邮件正文,并且提供了 HTML,则 HTML 将“覆盖”文本。如果您的客户端不支持 HTML,那么它可以相应地显示文本版本。

这可能是期望的行为。

我怀疑当您使用“smtplib”时,您没有为 HTML 和文本内容正确指定多部分内容。下面是如何使用 smtplib 发送 MIMEMultipart 内容的一个很好的示例: https://docs.python.org/2/library/email-examples.html#id5

【讨论】:

    【解决方案2】:

    根据源码,htmltext分别是set on the message instancesent in the message body separately。它们不会相互覆盖。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-10
      • 2018-04-25
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      相关资源
      最近更新 更多