通过 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 向多个收件人发送电子邮件?