python发送邮件脚本
本文实例为大家分享了python发送邮件的具体代码,供大家参考,具体内容如下
#!/usr/bin/envpython #-*-coding:utf-8-*- importsmtplib importsys fromemail.mime.textimportMIMEText importlinecache importemail importos ##################### #setemailservicehost,user,password,postfix mail_host="smtp.exmail.qq.com" mail_user="username" mail_pass="password" mail_postfix="qq.com" ###################### deftransfer_utf8_to_gb2312(file_name): f=open(file_name) s=f.read() f.close() u=s.decode("utf-8") s=u.encode("gb2312") f=open(file_name,"w"); f.write(s) defsend_mail(to_list,sub,content_file_name): me=mail_user+"<"+mail_user+"@"+mail_postfix+">" msg=email.MIMEMultipart.MIMEMultipart() content=open(content_file_name.encode("utf-8"),'rb') content_msg=MIMEText(content.read(),"plain","utf-8") msg.attach(content_msg) msg['Subject']=sub msg['From']=me msg['To']=";".join(to_list) try: s=smtplib.SMTP() s.connect(mail_host) s.login(mail_user+"@"+mail_postfix,mail_pass) s.sendmail(me,to_list,msg.as_string()) s.close() returnTrue exceptException,e: print"error:",str(e) returnFalse defsend_mail_with_attachment(to_list,sub,content_file_name,attachment_file_name): me=mail_user+"<"+mail_user+"@"+mail_postfix+">" msg=email.MIMEMultipart.MIMEMultipart() content=open(content_file_name.encode("utf-8"),'rb') content_msg=MIMEText(content.read(),"plain","utf-8") msg.attach(content_msg) fortmp_attachment_file_nameinattachment_file_name.split(","): contype='application/octet-stream' maintype,subtype=contype.split('/',1) file_data=open(tmp_attachment_file_name.encode("utf-8"),'rb') file_msg=email.MIMEBase.MIMEBase(maintype,subtype) file_msg.set_payload(file_data.read()) file_data.close() email.Encoders.encode_base64(file_msg) basename=os.path.basename(tmp_attachment_file_name) file_msg.add_header('Content-Disposition','attachment',filename=basename.encode("utf-8")) msg.attach(file_msg) msg['Subject']=sub msg['From']=me msg['To']=";".join(to_list) try: s=smtplib.SMTP() s.connect(mail_host) s.login(mail_user+"@"+mail_postfix,mail_pass) s.sendmail(me,to_list,msg.as_string()) s.close() returnTrue exceptException,e: print"error:",str(e) returnFalse defprint_usage(): print"Usage:" print"%semail_send_list(xxx@163.com,xxx@qq.com,...)subjectcontent_file_name"%(sys.argv[0]) print"%semail_send_list(xxx@163.com,xxx@qq.com,...)subjectcontent_file_nameattachment_file_name(file_name1,file_name2,...)if_transform_attachment_to_gb2312(yesornot)"%(sys.argv[0]) ######Startfromhere######### if__name__=='__main__': reload(sys) sys.setdefaultencoding('utf8') iflen(sys.argv)==6: send_list=sys.argv[1].split(",") subject=unicode(sys.argv[2],"utf-8") content_file_name=unicode(sys.argv[3],"utf-8") attachment_file_name=unicode(sys.argv[4],"utf-8") if(sys.argv[5]=="yes"): transfer_utf8_to_gb2312(attachment_file_name.decode("utf-8")) elif(sys.argv[5]=="not"): pass else: print_usage() ifsend_mail_with_attachment(send_list,subject,content_file_name,attachment_file_name): print"Sendemailsuccess!" else: print"Sendemailfail!" sys.exit(1) eliflen(sys.argv)==4: send_list=sys.argv[1].split(",") subject=unicode(sys.argv[2],"utf-8") content_file_name=unicode(sys.argv[3],"utf-8") ifsend_mail(send_list,subject,content_file_name): print"Sendemailsuccess!" else: print"Sendemailfail!" sys.exit(1) else: print_usage()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。