`

python发送email

阅读更多
第一种方法: 
Python代码  收藏代码
  1. # -*- coding: utf-8 -*-  
  2.   
  3. import email  
  4. import mimetypes  
  5. from email.MIMEMultipart import MIMEMultipart  
  6. from email.MIMEText import MIMEText  
  7. from email.MIMEImage import MIMEImage  
  8. import smtplib  
  9.   
  10. def sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText):  
  11.   
  12.         strFrom = fromAdd  
  13.         strTo = ', '.join(toAdd)  
  14.   
  15.         server = authInfo.get('server')  
  16.         user = authInfo.get('user')  
  17.         passwd = authInfo.get('password')  
  18.   
  19.         if not (server and user and passwd) :  
  20.                 print 'incomplete login info, exit now'  
  21.                 return  
  22.   
  23.         # 设定root信息  
  24.         msgRoot = MIMEMultipart('related')  
  25.         msgRoot['Subject'] = subject  
  26.         msgRoot['From'] = strFrom  
  27.         msgRoot['To'] = strTo  
  28.         msgRoot.preamble = 'This is a multi-part message in MIME format.'  
  29.   
  30.         # Encapsulate the plain and HTML versions of the message body in an  
  31.         # 'alternative' part, so message agents can decide which they want to display.  
  32.         msgAlternative = MIMEMultipart('alternative')  
  33.         msgRoot.attach(msgAlternative)  
  34.   
  35.         #设定纯文本信息  
  36. #        msgText = MIMEText(plainText, 'plain', 'utf-8')  
  37. #        msgAlternative.attach(msgText)  
  38.   
  39.         #设定HTML信息  
  40.         msgText = MIMEText(htmlText, 'html''utf-8')  
  41.         msgAlternative.attach(msgText)  
  42.   
  43.        #设定内置图片信息  
  44. #        fp = open('test.jpg', 'rb')  
  45. #        msgImage = MIMEImage(fp.read())  
  46. #        fp.close()  
  47. #        msgImage.add_header('Content-ID', '<image1>')  
  48. #        msgRoot.attach(msgImage)  
  49.   
  50.        #发送邮件  
  51.         smtp = smtplib.SMTP()  
  52.        #设定调试级别,依情况而定  
  53.         smtp.set_debuglevel(1)  
  54.         smtp.connect(server)  
  55.         smtp.login(user, passwd)  
  56.         smtp.sendmail(strFrom, strTo, msgRoot.as_string())  
  57. #        smtp.sendmail(strFrom, strTo, msgRoot.as_string())  
  58.         smtp.quit()  
  59.         return  
  60.   
  61. if __name__ == '__main__' :  
  62.         authInfo = {}  
  63.         authInfo['server'] = 'smtp.***.cn'  
  64.         authInfo['user'] = '***@***.cn'  
  65.         authInfo['password'] = '***'  
  66.         fromAdd = '***@***.cn'  
  67.         toAdd = ['***@163.com''***@gamil.com']  
  68.         subject = 'title'  
  69.         plainText = '这里是普通文本'  
  70.         htmlText = '<B>HTML文本</B>'  
  71.         sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)  

第二种方法: 
Python代码  收藏代码
  1. #coding=utf-8  
  2.   
  3. import smtplib,email,sys  
  4. from email.Message import Message  
  5.   
  6.   
  7. smtpserver='smtp.***.cn'  
  8. smtpuser='***@***.cn'  
  9. smtppass='***'  
  10. smtpport='25'  
  11.   
  12. def connect():  
  13.     "connect to smtp server and return a smtplib.SMTP instance object"  
  14.     server=smtplib.SMTP(smtpserver,smtpport)  
  15.     server.ehlo()  
  16.     server.login(smtpuser,smtppass)  
  17.     return server  
  18.       
  19. def sendmessage(server,to,subj,content):  
  20.     "using server send a email"  
  21.     msg = Message()  
  22.     msg['Mime-Version']='1.0'  
  23.     msg['From']    = smtpuser  
  24.     msg['To']      = to  
  25.     msg['Subject'] = subj  
  26.     msg['Date']    = email.Utils.formatdate()          # curr datetime, rfc2822  
  27.     msg.set_payload(content)  
  28.     try:      
  29.         failed = server.sendmail(smtpuser,to,str(msg))   # may also raise exc  
  30.     except Exception ,ex:  
  31.         print Exception,ex  
  32.         print 'Error - send failed'  
  33.     else:  
  34.         print "send success!"  
  35.   
  36. if __name__=="__main__":  
  37.     #frm=raw_input('From? ').strip()  
  38. #    to=raw_input('To? ').strip()  
  39. #    subj=raw_input('Subj? ').strip()   
  40.     to='***@***.com'  
  41.     subj='title1111'      
  42.     print 'Type message text, end with line="."'  
  43.     text = 'content'  
  44. #    while True:  
  45. #        line = sys.stdin.readline()  
  46. #        if line == '. ': break  
  47. #        text += line  
  48.     server=connect()  
  49.     sendmessage(server,to,subj,text)      

<iframe style="font-size: 12px; line-height: 18px;" src="http://canofy.iteye.com/iframe_ggbd/187" frameborder="0" scrolling="no" width="680" height="90"></iframe>

 
第一种方法 line 56 有个bug:收件人为多人时,只有第一个收件人能收到。
Python代码  收藏代码
  1. smtp.sendmail(strFrom, strTo, msgRoot.as_string())    

改为
Python代码  收藏代码
  1. smtp.sendmail(strFrom, toAdd, msgRoot.as_string())    

即可
分享到:
评论

相关推荐

    详解Python发送email的三种方式

    Python发送email的三种方式,分别为使用登录邮件服务器、使用smtp服务、调用sendmail命令来发送三种方法 Python发送email比较简单,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以...

    Python发送Email邮件案例

    使用Python编写的一个使用SMPT协议发送Email邮件的案例,适合消息监听的人群,可以实时得到消息响应

    Python发送email的3种方法

    python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现。 先把几个最...

    Python发送Email方法实例

    本文以实例形式展示了Python发送Email功能的实现方法,有不错的实用价值的技巧,且功能较为完善。具体实现方法如下: 主要功能代码如下: #/usr/bin/env python # -*- encoding=utf-8 -*- import base64 import ...

    python写的发送email的例子

    python写的发送email的例子,其中主要以python做为文字解析,发送email是使用了mutt. 我使用的是mutt+msmtp+getmail+procmail。

    Python-python发送邮件报表

    python发送邮件报表

    python发送qq邮箱源码

    python发送qq邮箱的代码,这里用到了Python的两个包来发送邮件: smtplib 和 email 。

    python发送邮件的脚本

    半天时间写了个python发送邮件的脚本 作者: jeffery ( email:dungeonsnd@126.com, msn:dungeonsnd@hotmail.com, csdn blog:http://blog.csdn.net/dungeonsnd) 时间: 2011-06-19 地点: SH --------------------------...

    python实现自动发送报警监控邮件

    本文实例为大家分享了python自动发送报警监控邮件 的具体代码,供大家参考,具体内容如下 因为有一些日常任务需要每日检查日否执行正确,所以需要...python send_email.py xxxxxxx@qq.com,xxxxxx@qq.com test数据 /hom

    解决python同时发送多个用户问题

    使用python发送邮件(单人/多人): 需要注意的点如下: 1、需要下载的python库有: import smtplib from email.mime.text import MIMEText from email.header import Header 2、整理一下简单的编程思路: a、首先...

    Python发送带图片邮件

    要使用Python发送带有图片的邮件,可以按照以下步骤进行: 导入所需的模块:首先,导入smtplib和email相关的模块,用于发送邮件。 创建邮件对象:使用email模块创建一个邮件对象。设置邮件的发件人、收件人、主题...

    python_email.rar

    一个封装好的使用python发送邮件的模块,可以发送html、图片、附件等,同时发送至多个收件人和抄送人。

    python写的发送email的例子-纯python版

    有两个功能: 1.发字符串到自己手机,借助139邮箱。 2.通过smtp发邮件。 个人感觉挺好用,一直在"使唤"他。 在linux和windows上正常运行。...abc 在mutt.alias中定义过了,所以,以后能用简称abc来发送地址。

    python 发送邮件

    学习中,python语言发送邮件测试代码,send email 上传

    Python实现发送email的几种常用方法

    学过Python的人都知道,实用Python实现发送email的功能还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,...

    python3 发送邮件包括主题和附件

    使用python3自带的库实现邮件发送,包括主题、附件等,可直接使用

    python send email via outlook

    使用python在win平台上利用outlook的com接口发送邮件, 要求, 配置python,pywin,outlook, 因为outlook有2003和2007之分, 本程序在2007下运行良好, 2003没有来得及测

    python自动发送监控数据到邮箱

    1.发送端和监控脚本都放在各个服务器上,监控脚本辅助监控服务器CPU,DISK使用情况和数据库的巡检报告。...发送邮件:配置信息都在email.ini配置文件中,包括收件箱名,附件名称。 python sentemail.py

Global site tag (gtag.js) - Google Analytics