通过 smtplib 发送电子邮件时如何在电子邮件内容中添加 href 链接

Posted

技术标签:

【中文标题】通过 smtplib 发送电子邮件时如何在电子邮件内容中添加 href 链接【英文标题】:how to add href link in email content when sending email through smtplib 【发布时间】:2015-10-21 07:13:32 【问题描述】:

我正在通过以下代码发送电子邮件:

msg = MIMEText(u'<a href="www.google.com">abc</a>')
msg['Subject'] = 'subject'
msg['From'] = 'xxx'
msg['To'] = 'xxx'

s = smtplib.SMTP(xxx, 25)
s.sendmail(xxx, xxx, msg.as_string())

我想收到的是

abc

我实际收到的是:

<a href="www.google.com">abc</a>

【问题讨论】:

docs.python.org/2/library/email-examples.html 您尝试执行的操作需要通过 MIMEText(html,blah) 发送 【参考方案1】:

您应该指定 'html' 作为子类型 -

msg = MIMEText(u'<a href="www.google.com">abc</a>','html')

不单独指定子类型,子类型默认为'plain'(纯文本)。来自documentations -

类 email.mime.text.MIMEText(_text[, _subtype[, _charset]])

MIMENonMultipart 的子类,MIMEText 类用于创建主要类型文本的 MIME 对象。 _text 是有效负载的字符串。 _subtype 是次要类型,默认为普通类型。

(强调我的)。

【讨论】:

【参考方案2】:

这对我有用:)

email_body = """<pre> 
Congratulations! We've successfully created account.
Go to the page: <a href="https://www.google.com/">click here</a>
Thanks,
XYZ Team.
</pre>"""

msg = MIMEText(email_body ,'html')

O/P: 恭喜!我们已成功创建帐户。

转到页面:click here

谢谢,

XYZ 团队。

【讨论】:

我不需要
 标签,当我通过 gmail 的 python api 发送电子邮件时,
 标签改变了字体的外观,这不是我想要的为了。在 MimeText 构造函数中指定“html”对我来说就足够了

以上是关于通过 smtplib 发送电子邮件时如何在电子邮件内容中添加 href 链接的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python smtplib 向多个收件人发送电子邮件?

发送电子邮件模块smtplib

Python:使用 smtplib 模块发送电子邮件时未显示“主题”

如何在python程序中发邮件

Python smtplib 代理支持

python: 如何使用 TO、CC 和 BCC 发送邮件?