首页 > 编程语言 > 详细

python发送邮件

时间:2016-03-19 13:01:02      阅读:425      评论:0      收藏:0      [点我收藏+]

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) 

 

python发送邮件

原文:http://www.cnblogs.com/pachongshangdexuebi/p/5293178.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!