python发送邮件

1、python发送普通文本邮件

import smtplib  
from email.mime.text import MIMEText  
mailto_list=["YYY@YYY.com"] #设置收件人
mail_host="XXX.XXX.com"  #设置服务器
mail_port=xxx #设置服务器端口号 mail_user="XXX" #用户名 mail_pass="XXXX" #口令
def send_mail(to_list,sub,content): #to_list:收件人;sub:主题;content:邮件内容 me="XXX.XXX.com"#设置发件人 msg = MIMEText(content,_subtype='html',_charset='UTF-8') #创建一个实例,这里设置为html格式邮件 msg['Subject'] = sub #设置主题 msg['From'] = me msg['To'] = ";".join(to_list) try: s = smtplib.SMTP() s.connect(mail_host,mail_port) #连接smtp服务器,mail_port默认为25 s.login(mail_user,mail_pass) #登陆服务器 s.sendmail(me, to_list, msg.as_string()) #发送邮件 s.close() return True except Exception, e: print str(e) return False if __name__ == '__main__': if send_mail(mailto_list,"hello","python发送出来的邮件"): print "发送成功" else: print "发送失败"

2、python发送html格式邮件

import smtplib  
from email.mime.text import MIMEText  
mailto_list=["YYY@YYY.com"] #设置收件人
mail_host="XXX.XXX.com"  #设置服务器
mail_port=xxx  #设置服务器端口号
mail_user="XXX"    #用户名
mail_pass="XXXX"   #口令 
  
def send_mail(to_list,sub,content):  #to_list:收件人;sub:主题;content:邮件内容
    me="XXX.XXX.com" #设置发件人
    msg = MIMEText(content,_subtype='html',_charset='gb2312')    #创建一个实例,这里设置为html格式邮件
    msg['Subject'] = sub    #设置主题
    msg['From'] = me  
    msg['To'] = ";".join(to_list)  
    try:  
        s = smtplib.SMTP()  
        s.connect(mail_host,mail_port)  #连接smtp服务器,端口号默认为25
        s.login(mail_user,mail_pass)  #登陆服务器
        s.sendmail(me, to_list, msg.as_string())  #发送邮件
        s.close()  
        return True  
    except Exception, e:  
        print str(e)  
        return False  
if __name__ == '__main__':  
    if send_mail(mailto_list,"hello","<a href='http://www.baidu.com'>百度一下</a>"):  
        print "发送成功"  
    else:  
        print "发送失败"  

 3、发送带正文和附件的邮件

#coding=utf-8
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib

#创建一个带附件的实例
msg = MIMEMultipart()

#构造邮件正文内容,注意构造邮件正文只能有一个
#注意正文部分一定要放在第一位置,如果放在后面构造附件代码的后面attach,那么就会变成附件内容处理
contentText= MIMEText("这是带有附件的邮件,详情见附件") #貌似可省略subtype和charset设置也能正常显示,最好加上咯
msg.attach(contentText)

#构造邮件正文内容,可读取文件内容作为正文
#contentText1 = MIMEText(open('D:\test\login.html', 'rb').read(), _subtype='html',_charset='utf-8')
#msg.attach(contentText1 )

#构造附件1
att1 = MIMEText(open('D:\test\login.html', 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="login.html"'#这里的filename可以任意写,实际上是在邮件中这个附件显示的文件名
msg.attach(att1)

#构造附件2
att2 = MIMEText(open('D:\BugReport.txt', 'rb').read(), 'base64', 'gb2312')
att2["Content-Type"] = 'application/octet-stream'
att2["Content-Disposition"] = 'attachment; filename="BugReport.txt"'  #这里的filename可以任意写,实际上是在邮件中这个附件显示的文件名
msg.attach(att2)



#加邮件头
msg['to'] = 'XXX@rd.com'
msg['from'] =  'XXX@rd.com'
msg['subject'] = 'hello world'
#发送邮件
try:
    server = smtplib.SMTP()
    server.connect('exchange-3.rd.com',25)#默认端口号也是25
    server.login('XXX','XXXXX')#XXX为用户名,XXXXX为密码
    server.sendmail(msg['from'], msg['to'],msg.as_string())
    server.quit()
    print '发送成功'
except Exception, e:  
    print str(e) 
原文地址:https://www.cnblogs.com/pachongshangdexuebi/p/5293178.html