Python发送HTML格式邮件的实现方法
本文介绍如何使用Python发送HTML格式的邮件。核心在于将MIMEText的subtype参数设置为html而非plain。通过示例代码展示如何配置163邮箱SMTP服务器、处理用户输入及发送带HTML内容的邮件,包含完整的连接、登录与发送逻辑。
Python发送HTML邮件概述
本文详细讲解利用Python发送HTML格式邮件的具体操作,通过提供详细的示例代码,为读者的学习或工作提供具有参考价值的指导。
发送HTML格式邮件的流程与普通文本邮件大致相同,主要区别在于创建MIMEText对象时,需将第二个参数指定为"html"而非"plain",并设置编码为"utf-8",调整这一格式参数即可完成转换。
核心代码实现与配置
Python发送HTML邮件与纯文本邮件的关键差异在于MIMEText中_sub_type参数的设置,需将其设为html。具体实现代码如下所示:
#"-*- coding: utf-8 -*-"
import smtplib
from email.mime.text import MIMEText
mail_user = raw_input("请输入你的163邮箱: ")
mail_password = raw_input("请输入邮箱授权码: ")
mail_from = raw_input("来自: ")
mail_sub = raw_input("邮件主题: ")
mail_content = raw_input("邮件内容: ") #例如: html格式的: "<a href='http://www.cnblogs.com/xiaowuyi'>小五义</a>"
#mailto_list = raw_input("") #qq邮箱
mail_host="smtp.163.com"
mail_postfix="163.com"
def sendmail(sub,content):
me=mail_from+"<"+mail_user+">"
msg=MIMEText(content,"html","utf-8")
msg['Subject']=sub
msg['From']=me
to_list = map(None, raw_input("发送给: ").split(' '))
msg['To']=",".join(to_list)
try:
server=smtplib.SMTP()
server.connect(mail_host)
server.login(mail_user,mail_password)
server.sendmail(me,to_list,msg.as_string())
server.close()
return True
except Exception,e:
print str(e)
return False
if sendmail(mail_sub, mail_content):
print "done!"
else:
print "falsed!"
#第二种方法:
#!/usr/bin/python
#-*- coding: utf-8 -*-
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib
mailer_name=raw_input("from: ")
mail_user=raw_input("163 email address: ")
mail_pass=raw_input("邮箱授权码: ")
mail_content=raw_input("content: ") #邮件内容是html格式的
mail_host="smtp.163.com"
mail_postfix="163.com"
def send_mail(sub,content):
me=mailer_name +"<"+mail_user+">"
msg=MIMEText(content,"html","utf-8")
msg['Subject']=sub
msg['From']=me
to_list = map(None,raw_input("mail_to: ").split(" "))#可以群发
msg['To']=",".join(to_list)
try:
server=smtplib.SMTP()
server.connect(mail_host)
server.login(mail_user,mail_pass)
server.sendmail(me,to_list,msg.as_string())
server.close()
return True
except Exception,e:
print str(e)
return False
if send_mail("邮件",mail_content):
print "done!"
else:
print "failed!"
执行结果

以上即为本文的全部内容,希望能为各位的学习带来帮助,同时也欢迎大家继续支持本站获取更多技术资源。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









