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())
what I want to receive is
abc
what I actually received is:
<a href="www.google.com">abc</a>
You should specify 'html'
as the subtype -
msg = MIMEText(u'<a href="www.google.com">abc</a>','html')
Without specifying the subtype separately , the subtype defaults to 'plain'
(plain-text). From documentations -
class email.mime.text.MIMEText(_text[, _subtype[, _charset]])
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.
(Emphasis mine) .
This worked for me :)
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:
Congratulations! We've successfully created account.
Go to the page: click here
Thanks,
XYZ Team.