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

2022-01-17 00:00:00 python email smtp smtplib

问题描述

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

I'm sending email through below code:

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>


解决方案

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

You should specify 'html' as the subtype -

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

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

Without specifying the subtype separately , the subtype defaults to 'plain' (plain-text). From documentations -

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

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

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

A subclass of MIMENonMultipart, the MIMEText class is used to create MIME objects of major type text. _text is the string for the payload. _subtype is the minor type and defaults to plain.

(强调我的).

相关文章