python邮件模块,python发邮件模块

  python邮件模块,python发邮件模块

  说明

  1.电子邮件模块支持发送电子邮件,包括纯文本,HTML内容,图片和附件。

  2.有几种类型的电子邮件模块,用于不同形式的电子邮件内容。

  有MIMEText、MIMEImage和MIMEMultupart。

  文本:内容是纯文本和HTML页面。

  MIMEImage:内容是图片。

  MIMEMultupart:它可以包含文本和附件。

  实例

  #!/usr/bin/python

  #-*-编码:utf-8-*-

  @author:freesigefei

  created on 2016 2016年3月20日

  2016年5月4日更新

  # -

  importsmtplib

  from email . mime . textimportmimetext

  from email . mime . multipart importmime multipart

  fromemail.headerimportHeader

  重要性、时间、回复

  defsend _ Test _ email(mail _ to):

  该模块实现了获取最新的测试报告html文件,读取部分报告内容作为邮件正文,附上报告发送到指定邮箱,

  mail_to参数代表接收邮箱,例如:xxx@126.com

  #发送邮箱

  mail_from=yyy@sina.com

  #发送邮件主题

  mail _ subject= AutomationTestReport

  #发送邮箱服务器

  mail_smtpserver=smtp.sina.com

  #发送邮箱用户/密码

  mail_username=yyy@sina.com

  mail _ password= yyyyyy

  #定义电子邮件内容,中文需要参数“UTF-8”,但单字节字符不需要。

  #以文件形式发送邮件

  Msg=MIMEText (Hello!,文本, utf-8 )

  #发送在html中显示为邮件内容中普通文本的邮件。

  Msg=MIMEText(htmlh1你好!/h1/html , html , utf-8 )

  #

  读取html文件内容并发送

  f=open(file_new,'rb')

  mail_body=f.read()

  f.close()

  printmail_body

  msg=MIMEText(mail_body,_subtype='html',_charset='utf-8')

  '''

  

  #创建一个带附件的邮件实例(内容)

  msg=MIMEMultipart()

  #找到report目录下最新生成的报告文件供后续使用

  result_dir='D:\\report'

  lists=os.listdir(result_dir)

  lists.sort(key=lambdafn:os.path.getmtime(result_dir+"\\"+fn)ifnot

  os.path.isdir(result_dir+"\\"+fn)else0)

  print(u'TheLatestTestReportis:'+lists[-1])

  file_new=os.path.join(result_dir,lists[-1])

  #读取最新的测试报告文件获取部分信息来定义邮件的内容

  Regex_Theme=re.compile(r'AutomationTestReport')

  Regex_Content=re.compile(r'<strong>(.*:)</strong>(.*)<')

  Report_File=open(file_new,'r')

  Mail_Content=[]

  forlineinReport_File.readlines():

  if'<title>AutomationTestReport</title>'inlineor"<p>"inline:

  i=Regex_Theme.findall(line)

  j=Regex_Content.findall(line)

  ifi!=[]:

  Mail_Content.append(i)

  ifj!=[]:

  Mail_Content.append(j)

  Report_File.close()

  #将读取到的测试报告的数据以html形式显示为邮件的中文

  msgTest=MIMEText('''<html><h1>Testcompleted,Testresultsareasfollows:</h1></html>'''

  '''<hr/>'''

  '''<p><strong>'''+Mail_Content[0][0]+'''</strong></p>'''

  '''<p><strong>'''+Mail_Content[1][0][0]+'''</strong>'''+Mail_Content[1][0][1]+'''</p>'''

  '''<p><strong>'''+Mail_Content[2][0][0]+'''</strong>'''+Mail_Content[2][0][1]+'''</p>'''

  '''<p><strong>'''+Mail_Content[3][0][0]+'''</strong>'''+Mail_Content[3][0][1]+'''</p>'''

  '''<hr/>'''

  '''<p>PS:Detailedtestresultspleaserefertotheattachment</p>'''

  ,'html','utf-8')

  msg.attach(msgTest)

  #定义邮件的附件

  att1=MIMEText(open(file_new,'rb').read(),'base64','utf-8')

  att1["Content-Type"]='application/octet-stream'

  att1["Content-Disposition"]='attachment;filename="Automationtestreport.html"'#这里的filename指的是附件的名称及类型

  msg.attach(att1)

  #将邮件的主题等相关信息添加到邮件实例

  msg['Subject']=Header(mail_subject)

  msg['From']=mail_from

  msg['To']=mail_to

  msg['date']=time.strftime('%a,%d%b%Y%H:%M:%S%z')

  #创建发送服务器实例并将发送服务器添加到实例中

  smtp=smtplib.SMTP()

  smtp.connect(mail_smtpserver)

  '''

  #采用ssl加密传输

  smtp.ehlo()

  smtp.starttls()

  smtp.ehlo()

  '''

  '''

  #打印交互的日志信息

  #smtp.set_debuglevel(1)

  '''

  #登录发送邮件服务器并进行邮件的发送

  smtp.login(mail_username,mail_password)

  smtp.sendmail(mail_from,mail_to,msg.as_string())

  printu'Testreportsentsuccessfully,Pleasegotothefollowingemailtocheckthetestreport:%s'%mail_to

  smtp.quit()

  

  #----------------------------------------------------------------------------------------------------

  if__name__=="__main__":

  send_Test_email('xxx@126.com')以上就是python email模块的使用,希望对大家有所帮助。更多Python学习指路:python基础教程

  本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: