`

Python 发送email的方法

 
阅读更多

import smtplib

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import Encoders

##------------------------------------------------------------------------------
def sendEmail(subject, body, host, sender, recipients):
##    recipients = getRecipientList(recipients)
    header = "Subject: %s\r\nFrom: %s\r\nTo: %s\r\n\r\n" % (
                subject, sender, ", ".join(recipients))
    
    smtp = smtplib.SMTP(host)       
    smtp.sendmail(sender, recipients, header + body)
    smtp.quit()

##------------------------------------------------------------------------------  
def sendEmailWithAttachments(subject, body, host, sender, recipients, attachments):
    msg = MIMEMultipart()
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = ", ".join(recipients)

    msg.preamble = subject
    msg.epilogue = ''    # guarantees the message ends in a newline

    if body:
        msg.attach(MIMEText(body))

    # Handle the attachments:
    for filename in attachments:
        msg.attach(getMIMEMessage(filename))

    smtp = smtplib.SMTP(host)    
    smtp.sendmail(sender, recipients, msg.as_string())
    smtp.quit()

##------------------------------------------------------------------------------  
def sendEmailWithHtmlContent(subject, body, host, sender, recipients):
    msg = MIMEMultipart('alternative')
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = ", ".join(recipients)

    msg.preamble = subject
    msg.epilogue = ''    # guarantees the message ends in a newline

    if body:
        msg.attach(MIMEText(body,'html'))

    smtp = smtplib.SMTP(host)    
    smtp.sendmail(sender, recipients, msg.as_string())
    smtp.quit()
    
##------------------------------------------------------------------------------
def getMIMEMessage(filename):
    fp = open(filename, 'rb')
    msg = MIMEBase('application', 'octet-stream')
    msg.set_payload(fp.read())
    fp.close()
    
    Encoders.encode_base64(msg)     

    # Set the filename parameter:
    msg.add_header('Content-Disposition', 'attachment', filename=filename)

    return msg

##------------------------------------------------------------------------------
def getRecipientList(filename):
    lines = file(filename).readlines()
    return [l.strip() for l in lines
            if l.strip() and not l.startswith('#')]
  
##------------------------------------------------------------------------------
if __name__ == '__main__':

#     sendEmail(subject='Testing',
#               body='This is just a test',
#               host='internalmail.qq.com',
#               sender='EmailTester@qq.com',
#               recipients=['mike.cheng@qq.com'])

#     sendEmailWithAttachments(
#         subject='Testing',
#         body='This is just a test',
#         host='internalmail.qq.com',
#         sender='EmailTester@qq.com',
#         recipients=['feihong.hsu@qq.com'],
#         attachments=['mail.py'])

# #  sendEmailWithHtmlContent 
#     mailcontent= open('reboot_success.html','r').read()
#     mailcontent = mailcontent.replace('{processName}', '')
#     mailcontent = mailcontent.replace('{computerName}', '')
#     mailcontent = mailcontent.replace('{serviceName}', '')
#     sendEmailWithHtmlContent(subject='[Warn] has been restarted successfully on ',
#            body=mailcontent,
#            host='internalmail.qq.com',
#            sender='DataOperation.Monitor@qq.com',
#            recipients=['SZDATAPRODUCTION@qq.com'])
                    
    print '\nDone!\n'


分享到:
评论

相关推荐

    Python发送Email方法实例

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

    详解Python发送email的三种方式

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

    Python发送Email邮件案例

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

    Python实现自动发送邮件和发送钉钉消息源码

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

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

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

    Python发送email的3种方法

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

    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_发送邮件.docx

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

    python邮件发附件方法

    该方法使用了 Python 的 email 模块,通过该模块可以创建一个带附件的邮件实例,并将其发送到指定的收件人邮箱中。 email 模块是 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_email.rar

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

    Python-使用GmailAPI和Python发送多个自定义电子邮件

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

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

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

    python发送邮件(smtplib).docx

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

    Python 发送邮件方法总结

    本文将聊聊利用 Python 发送邮件的 3 种方式 2. 准备 以 126 邮箱为例,在编码之前,我们需要开启 SMTP 服务 然后,手动新增一个授权码 其中,账号、授权码和服务器地址用于连接登录邮箱服务器 3. 方式一:smtplib ...

Global site tag (gtag.js) - Google Analytics