python程序发送email的源码
发布时间:2020-12-20 10:56:57 所属栏目:Python 来源:网络整理
导读:把开发过程经常用的代码段收藏起来,下边代码段是关于python程序发送email的的代码,应该是对码农们有一些好处。 server = ‘smtp.gmail.com:587‘;#importsfrom time import sleep;import smtplib;from email.mime.application import MIMEApplicationfrom
把开发过程经常用的代码段收藏起来,下边代码段是关于python程序发送email的的代码,应该是对码农们有一些好处。
server = ‘smtp.gmail.com:587‘; #imports from time import sleep; import smtplib; from email.mime.application import MIMEApplication from email.mime.text import MIMEText; from email.mime.multipart import MIMEMultipart; # takes addresses to,from cc and a subject def create_msg(to_address,from_address=‘‘,cc_address=‘‘,bcc_address=‘‘,subject=‘‘): msg = MIMEMultipart(); msg[‘Subject‘] = subject; msg[‘To‘] = to_address; msg[‘Cc‘] = cc_address; msg[‘From‘] = from_address; return msg; # if mode = 0 sends to and cc # if mode = 1 sends to bcc def send_email(smtp_address,usr,password,msg,mode): server = smtplib.SMTP(smtp_address); server.ehlo(); server.starttls(); server.ehlo(); server.login(username,password); if (mode == 0 and msg[‘To‘] != ‘‘): server.sendmail(msg[‘From‘],(msg[‘To‘]+msg[‘Cc‘]).split(","),msg.as_string()); elif (mode == 1 and msg[‘Bcc‘] != ‘‘): server.sendmail(msg[‘From‘],msg[‘Bcc‘].split(",msg.as_string()); elif (mode != 0 and mode != 1): print ‘error in send mail bcc‘; print ‘email cancled‘; exit(); server.quit(); # compose email # takes all the details for an email and sends it # address format: list,[0] - to # [1] - cc # [2] - bcc # subject format: string # body format: list of pairs [0] - text # [1] - type: # 0 - plain # 1 - html # files is list of strings def compose_email(addresses,subject,body,files): # addresses to_address = addresses[0]; cc_address = addresses[1]; bcc_address = addresses[2]; # create a message msg = create_msg(to_address,cc_address=cc_address,subject=subject); # add text for text in body: attach_text(msg,text[0],text[1]); # add files if (files != ‘‘): file_list = files.split(‘,‘); for afile in file_list: attach_file(msg,afile); # send message send_email(server,username,0); # check for bcc if (bcc_address != ‘‘): msg[‘Bcc‘] = bcc_address; send_email(server,1); print ‘email sent‘ # attach text # attaches a plain text or html text to a message def attach_text(msg,atext,mode): part = MIMEText(atext,get_mode(mode)); msg.attach(part); # util function to get mode type def get_mode(mode): if (mode == 0): mode = ‘plain‘; elif (mode == 1): mode = ‘html‘; else: print ‘error in text kind‘; print ‘email cancled‘; exit(); return mode; # attach file # takes the message and a file name and attaches the file to the message def attach_file(msg,afile): part = MIMEApplication(open(afile,"rb").read()); part.add_header(‘Content-Disposition‘,‘attachment‘,filename=afile); msg.attach(part); #to be tested... compose_email([‘[email?protected]‘,‘‘,‘‘],‘test v.5.0‘,[[‘some text goes here...n‘,0]],‘‘); #compose_email can take the following arguments: # 1. to recipients (separated by a comma) # 2. cc recipients (separated by a comma) # 3. bcc recipients (separated by a comma) # 4. subject # 5. a list with message and mode (plain txt or html) # 6. files to be attached (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |