python smtplib模块实现发送邮件带附件sendmail
本文实例为大家分享了pythonsmtplib实现发送邮件的具体代码,供大家参考,具体内容如下
#!/usr/bin/envpython
#-*-coding:UTF-8-*-
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.baseimportMIMEBase
fromemail.mime.textimportMIMEText
fromemail.utilsimportCOMMASPACE,formatdate
fromemailimportencoders
importos
defsend_mail(server,fro,to,subject,text,files=[]):
asserttype(server)==dict
asserttype(to)==list
asserttype(files)==list
msg=MIMEMultipart()
msg['From']=fro
msg['Subject']=subject
msg['To']=COMMASPACE.join(to)#COMMASPACE==','
msg['Date']=formatdate(localtime=True)
msg.attach(MIMEText(text))
forfinfiles:
part=MIMEBase('application','octet-stream')#'octet-stream':binarydata
part.set_payload(open(f,'rb').read())
encoders.encode_base64(part)
part.add_header('Content-Disposition','attachment;filename="%s"'%os.path.basename(f))
msg.attach(part)
importsmtplib
smtp=smtplib.SMTP(server['name'],server['port'])
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login(server['user'],server['passwd'])
smtp.sendmail(fro,to,msg.as_string())
smtp.close()
if__name__=='__main__':
server={'name':'mail.server.com','user':'chenxiaowu','passwd':'xxxx','port':25}
fro='chenxiaowu@163.com'
to=['xxxx@163.com']
subject='脚本运行提醒'
text='mailcontent'
files=['top_category.txt']
send_mail(server,fro,to,subject,text,files=files)
从网上找了些资料,不会有个别错误,上面代码经调试测试通过。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。