用python发送邮件(可以带附件)

来源:互联网 发布:淘宝怎么才能做起来 编辑:程序博客网 时间:2024/05/08 14:54

首先,我们要使用SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)

使用到python的smtplib模块(SMTP, login, sendmail, quit)、email.mime模块(MIMEMultipart,MIMEBase等)

假设我们使用126邮箱的smtp地址:smtp.126.com

from email.mime import multipartfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.base import MIMEBasefrom email import encodersimport smtplibimport osfrom email.mime.image import MIMEImagedef send_mail(fromaddr,psw,toaddr,text,subject,file):    msg = MIMEMultipart()    #以下是SMTP的协议规定字段(不是全都是必选项)    msg['From'] = fromaddr    msg['To'] = toaddr    msg['Subject'] = subject    msg.attach(MIMEText(text))    part = MIMEBase('application','jpg')     #参考MIME手册自己设定    part.set_payload(open(file,"rb").read())     encoders.encode_base64(part)             #用base64编码    part.add_header('Content-Disposition', 'attachment;filename=p.jpg')   #附件列表中显示的文件名    msg.attach(part)                         #将文件附件添加到待发送的MIMEMultipart对象msg中    server = smtplib.SMTP('smtp.126.com',25)    server.login(fromaddr, psw)              #登陆到SMTP服务器    server.sendmail(fromaddr,toaddr,msg.as_string())         #msg要调用as_string()转换成字节字符流才能发送    server.quit()



今天先写到这了,太困,睡觉去,有不懂的可以问我



原创粉丝点击