`

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实现自动发送邮件和发送钉钉消息源码

    本篇将深入讲解如何利用Python的requests库发送钉钉消息以及如何使用email和smtplib库发送邮件,特别是与163邮箱服务的集成。 首先,我们来探讨如何使用requests库发送钉钉消息。钉钉提供了Webhook接口,通过...

    Python-基于python3email封装的一个易用的邮件库

    本篇文章将深入探讨如何基于`python3email`封装一个易用的邮件库,并结合其他相关模块,如`smtplib`和`imaplib`,实现邮件的发送和接收。 首先,让我们了解`python3email`模块。这个模块提供了一组类和函数,用于...

    Python-python发送邮件报表

    subject = 'Python发送的报表' body = '这是使用Python自动发送的报表邮件。' msg = MIMEMultipart() msg['From'] = sender msg['To'] = receiver msg['Subject'] = subject ``` 若邮件内容包含纯文本和HTML两种...

    python写的发送email的例子

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

    基于Python实现多进程的发送邮件.zip

    4. **邮件发送函数**:一个单独的函数(如`send_email.py`中的`send_email()`),负责构建邮件对象、连接SMTP服务器并发送邮件。这个函数应能处理异常,如网络问题或验证失败。 5. **进程管理**:在主程序中,我们...

    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-使用GmailAPI和Python发送多个自定义电子邮件

    当涉及到电子邮件收发时,Python提供了各种库,如smtplib、email和imaplib,但结合Gmail API,我们可以实现更高级的功能,比如批量发送自定义邮件。本教程将深入探讨如何使用Gmail API和Python来发送多个自定义电子...

    python_发送邮件.docx

    本文档主要介绍了两种使用Python发送邮件的方法,涉及到了smtplib和email模块。 首先,smtplib是Python的标准库,它提供了一种与SMTP(简单邮件传输协议)服务器进行交互的方法。在发送邮件时,你需要先导入smtplib...

    python_email.rar

    在"python_email.rar"这个压缩包中,我们找到了一个名为"email3.py"的文件,它可能是一个封装了使用Python发送邮件功能的脚本。这个脚本允许用户通过SMTP(Simple Mail Transfer Protocol)服务发送包含HTML内容、...

    python发送邮件(smtplib).docx

    总之,Python的`smtplib`和`email`模块提供了强大的邮件发送功能,不仅可以发送纯文本邮件,还可以轻松地添加附件和图片,满足各种复杂的邮件发送需求。通过理解这些基础知识,你可以轻松地构建自己的邮件自动化工具...

    Python 邮件发送测试运维报警必备 - 笔记.docx

    Python 邮件发送测试运维报警必备笔记 本笔记主要介绍了使用 Python 实现邮件发送测试运维报警的相关知识点,涵盖了 SMTP 介绍、QQ 环境设置、MIME 操作、发送各种文档和图片等内容。 1. SMTP 介绍 SMTP(Simple ...

    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、首先...

Global site tag (gtag.js) - Google Analytics