首页 > 代码库 > Python发送邮件
Python发送邮件
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author: guojing # Date: 2014-10-23 # Purpose: 发送邮件 ‘‘‘ 发送邮件 Parameters:主题、接受者(多个用‘,‘分割)、抄送(多个用‘,‘分割)、内容(可以是文件)、附件(多个用‘,‘分割) ‘‘‘ __author__ = ‘guojing‘ import email,sys,os import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from email.MIMEImage import MIMEImage SENDER = ‘username@****.com‘ SMTPSERVER = ‘smtpcloud.sohu.com‘ #RECEIVERS = ‘‘ USERNAME = ‘username@****.com‘ APIKEY = ‘******‘ def sendMail(subject, receivers, cc, content, atts): msg = MIMEMultipart(‘related‘) msg[‘Subject‘] = unicode(subject, "UTF-8") msg[‘From‘] = SENDER msg[‘To‘] = receivers msg[‘Cc‘] = cc #邮件内容 if os.path.isfile(content): if(content.split(‘.‘)[-1]==‘html‘): cont = MIMEText(open(content).read(),‘html‘,‘utf-8‘) else: cont = MIMEText(open(content).read(),‘plain‘,‘utf-8‘) else: cont = MIMEText(content, ‘plain‘,‘utf-8‘) msg.attach(cont) #构造附件 if atts != -1 and atts != ‘‘: for att in atts.split(‘,‘): os.path.isfile(att) name = os.path.basename(att) att = MIMEText(open(att).read(), ‘base64‘, ‘utf-8‘) att["Content-Type"] = ‘application/octet-stream‘ #将编码方式为utf-8的name,转码为unicode,然后再转成gbk(否则,附件带中文名的话会出现乱码) att["Content-Disposition"] = ‘attachment; filename=%s‘ % name.decode(‘utf-8‘).encode(‘gbk‘) msg.attach(att) smtp = smtplib.SMTP() smtp.connect(SMTPSERVER) smtp.login(USERNAME, APIKEY) for recev in receivers.split(‘,‘): smtp.sendmail(SENDER,recev, msg.as_string()) for c in cc.split(‘,‘): smtp.sendmail(SENDER,c, msg.as_string()) smtp.quit() def main(): print "start send mail[sendmail.py]" subject = sys.argv[1] receivers = sys.argv[2] #cc = sys.argv[3] leng = len(sys.argv) if leng == 3: cc = "" content = "" atts = -1 elif leng == 4: print "The parameters is not currect!" sys.exit(0) elif leng == 5: cc = sys.argv[3] content = sys.argv[4] atts = -1 elif leng == 6: cc = sys.argv[3] content = sys.argv[4] atts = sys.argv[5] sendMail(subject, receivers, cc, content, atts) print "finish send mail[sendmail.py]" if __name__==‘__main__‘: main()
参考:
http://blog.csdn.net/betry/article/details/6657429
Python发送邮件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。