zoukankan      html  css  js  c++  java
  • 用python 发送邮件

    用python 发送邮件 - xiaofeng1982的日志 - 网易博客

    用python 发送邮件   

    2010-10-31 12:17:38|  分类: python |  标签:  |字号 订阅

    一直再找linux下 用shell 发送邮件的方法。找了好长时间也没有找到,最终决点用python 的email模块发送邮件,在网上找了一下代码。
    转自:李卫公的长安城
    http://blog.donews.com/maverick/archive/2007/04/22/1159142.aspx
    再此表示感谢
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import email
    import mimetypes
    from email.MIMEMultipart import MIMEMultipart
    from email.MIMEText import MIMEText
    from email.MIMEImage import MIMEImage
    import smtplib
    def sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText):
            strFrom = fromAdd
            strTo = ', '.join(toAdd)
            server = authInfo.get('server')
            user = authInfo.get('user')
            passwd = authInfo.get('password')
            if not (server and user and passwd) :
                    print 'incomplete login info, exit now'
                    return
            # 设定root信息
            msgRoot = MIMEMultipart('related')
            msgRoot['Subject'] = subject
            msgRoot['From'] = strFrom
            msgRoot['To'] = strTo
            msgRoot.preamble = 'This is a multi-part message in MIME format.'
            # Encapsulate the plain and HTML versions of the message body in an
            # 'alternative' part, so message agents can decide which they want to display.
            msgAlternative = MIMEMultipart('alternative')
            msgRoot.attach(msgAlternative)
            #设定纯文本信息
            msgText = MIMEText(plainText, 'plain', 'utf-8')
            msgAlternative.attach(msgText)
            #设定HTML信息
            msgText = MIMEText(htmlText, 'html', 'utf-8')
            msgAlternative.attach(msgText)
           #设定内置图片信息
            fp = open('test.jpg', 'rb')
            msgImage = MIMEImage(fp.read())
            fp.close()
            msgImage.add_header('Content-ID', '<image1>')
            msgRoot.attach(msgImage)
    #创建一个带附件的实例
    msg = MIMEMultipart()
    #构造附件
    att = MIMEText(open('d:\\1.jpg', 'rb').read(), 'base64', 'utf-8')
    att["Content-Type"] = 'application/octet-stream'
    att["Content-Disposition"] = 'attachment; filename="1.jpg"'
    msgAlternative.attach(att)
           #发送邮件
            smtp = smtplib.SMTP()
           #设定调试级别,依情况而定
            smtp.set_debuglevel(1)
            smtp.connect(server)
            smtp.login(user, passwd)
            smtp.sendmail(strFrom, toAdd, msgRoot.as_string())
            smtp.quit()
            return
    if __name__ == '__main__' :
            authInfo = {}
            authInfo['server'] = 'smtp.somehost.com'
            authInfo['user'] = 'username'
            authInfo['password'] = 'password'
            fromAdd = 'username@somehost.com'
            toAdd = ['someone@somehost.com', 'other@somehost.com']
            subject = '邮件主题'
            plainText = '这里是普通文本'
            htmlText = '<B>HTML文本</B>'
            sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)
  • 相关阅读:
    IO流之File类
    CPU单核多核区别【转载】
    [转载] MySQL的四种事务隔离级别
    事务的四大特性,以及隔离级别
    [转载] spring aop 环绕通知around和其他通知的区别
    [转载] Spring框架——AOP前置、后置、环绕、异常通知
    spring框架 AOP核心详解
    汇编语言--操作数的寻址方式(三)
    汇编语言--CPU资源和存储器(二)
    汇编语言学习--基础知识(一)
  • 原文地址:https://www.cnblogs.com/lexus/p/2782199.html
Copyright © 2011-2022 走看看