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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。