zoukankan      html  css  js  c++  java
  • Python email sending methods

    Python email sending methods

    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 =
    email.MIMEMultipart.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 =
    email.MIMEText.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)

           
    #发送邮件
            smtp = smtplib.SMTP()
           
    #设定调试级别,依情况而定
            smtp.set_debuglevel(1)
            smtp.connect(server)
            smtp.login(user, passwd)
            smtp.sendmail(strFrom, strTo, msgRoot.as_string())
    #        smtp.sendmail(strFrom, strTo, msgRoot.as_string())
            smtp.quit()
            
    return

    if __name__ == '__main__' :
            authInfo 
    = {}
            authInfo[
    'server'= 'smtp.***.cn'
            authInfo[
    'user'= '***@***.cn'
            authInfo[
    'password'= '***'
            fromAdd 
    = '***@***.cn'
            toAdd 
    = ['***@163.com''***@gamil.com']
            subject 
    = 'title'
            plainText 
    = '这里是普通文本'
            htmlText 
    = '<B>HTML文本</B>'

            sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)

    第二种方法:

    #coding=utf-8

    import smtplib,email,sys
    from email.Message import Message


    smtpserver
    ='smtp.***.cn'
    smtpuser
    ='***@***.cn'
    smtppass
    ='***'
    smtpport
    ='25'

    def connect():
        
    "connect to smtp server and return a smtplib.SMTP instance object"
        server
    =smtplib.SMTP(smtpserver,smtpport)
        server.ehlo()
        server.login(smtpuser,smtppass)
        
    return server
        
    def sendmessage(server,to,subj,content):
        
    "using server send a email"
        msg 
    = Message()
        msg[
    'Mime-Version']='1.0'
        msg[
    'From']    = smtpuser
        msg[
    'To']      = to
        msg[
    'Subject'= subj
        msg[
    'Date']    = email.Utils.formatdate()          # curr datetime, rfc2822
        msg.set_payload(content)
        
    try:    
            failed 
    = server.sendmail(smtpuser,to,str(msg))   # may also raise exc
        except Exception ,ex:
            
    print Exception,ex
            
    print 'Error - send failed'
        
    else:
            
    print "send success!"

    if __name__=="__main__":
        
    #frm=raw_input('From? ').strip()
    #
        to=raw_input('To? ').strip()
    #
        subj=raw_input('Subj? ').strip() 
        to='***@***.com'
        subj
    ='title1111'    
        
    print 'Type message text, end with line="."'
        text 
    = 'content'
    #    while True:
    #
            line = sys.stdin.readline()
    #
            if line == '. ': break
    #
            text += line
        server=
    connect()
        sendmessage(server,to,subj,text)   

    这两中方法非常有效.

  • 相关阅读:
    springBoot启动异常 Failed to load ApplicationContext
    mysql存储过程
    springBoot集成Swagger
    groupmems命令:更改和查看组成员 和 usermod命令修改组
    javaBean简介
    Angular获取dom元素,以及父子组建之间相互传值
    Lambda表达式
    坐标转换
    扩展方法
    Binding的Path(路径)
  • 原文地址:https://www.cnblogs.com/SunWentao/p/1497092.html
Copyright © 2011-2022 走看看