多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國(guó)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2

python教程

  • Python 入門教程
  • Python 基礎(chǔ)教程

    Python 高級(jí)教程

    Python 常用資源

    Python 拓展閱讀

    Python使用SMTP發(fā)送郵件

    閱讀 (2364)

    Python使用SMTP發(fā)送郵件

    SMTP(Simple Mail Transfer Protocol)即簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉(zhuǎn)方式。

    python的smtplib提供了一種很方便的途徑發(fā)送電子郵件。它對(duì)smtp協(xié)議進(jìn)行了簡(jiǎn)單的封裝。

    Python創(chuàng)建 SMTP 對(duì)象語法如下:

    import smtplib
    
    smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
    

    參數(shù)說明:

    • host: SMTP 服務(wù)器主機(jī)。 你可以指定主機(jī)的ip地址或者域名如:w3cschool.cn,這個(gè)是可選參數(shù)。
    • port: 如果你提供了 host 參數(shù), 你需要指定 SMTP 服務(wù)使用的端口號(hào),一般情況下SMTP端口號(hào)為25。
    • local_hostname: 如果SMTP在你的本機(jī)上,你只需要指定服務(wù)器地址為 localhost 即可。

    Python SMTP對(duì)象使用sendmail方法發(fā)送郵件,語法如下:

    SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]
    

    參數(shù)說明:

    • from_addr: 郵件發(fā)送者地址。
    • to_addrs: 字符串列表,郵件發(fā)送地址。
    • msg: 發(fā)送消息

    這里要注意一下第三個(gè)參數(shù),msg是字符串,表示郵件。我們知道郵件一般由標(biāo)題,發(fā)信人,收件人,郵件內(nèi)容,附件等構(gòu)成,發(fā)送郵件的時(shí)候,要注意msg的格式。這個(gè)格式就是smtp協(xié)議中定義的格式。

    實(shí)例

    以下是一個(gè)使用Python發(fā)送郵件簡(jiǎn)單的實(shí)例:

    #!/usr/bin/python
    
    import smtplib
    
    sender = 'from@fromdomain.com'
    receivers = ['to@todomain.com']
    
    message = """From: From Person <from@fromdomain.com>
    To: To Person <to@todomain.com>
    Subject: SMTP e-mail test
    
    This is a test e-mail message.
    """
    
    try:
       smtpObj = smtplib.SMTP('localhost')
       smtpObj.sendmail(sender, receivers, message)         
       print "Successfully sent email"
    except SMTPException:
       print "Error: unable to send email"
    

    使用Python發(fā)送HTML格式的郵件

    Python發(fā)送HTML格式的郵件與發(fā)送純文本消息的郵件不同之處就是將MIMEText中_subtype設(shè)置為html。具體代碼如下:

    import smtplib  
    from email.mime.text import MIMEText  
    mailto_list=["YYY@YYY.com"] 
    mail_host="smtp.XXX.com"  #設(shè)置服務(wù)器
    mail_user="XXX"    #用戶名
    mail_pass="XXXX"   #口令 
    mail_postfix="XXX.com"  #發(fā)件箱的后綴
      
    def send_mail(to_list,sub,content):  #to_list:收件人;sub:主題;content:郵件內(nèi)容
        me="hello"+"<"+mail_user+"@"+mail_postfix+">"   #這里的hello可以任意設(shè)置,收到信后,將按照設(shè)置顯示
        msg = MIMEText(content,_subtype='html',_charset='gb2312')    #創(chuàng)建一個(gè)實(shí)例,這里設(shè)置為html格式郵件
        msg['Subject'] = sub    #設(shè)置主題
        msg['From'] = me  
        msg['To'] = ";".join(to_list)  
        try:  
            s = smtplib.SMTP()  
            s.connect(mail_host)  #連接smtp服務(wù)器
            s.login(mail_user,mail_pass)  #登陸服務(wù)器
            s.sendmail(me, to_list, msg.as_string())  #發(fā)送郵件
            s.close()  
            return True  
        except Exception, e:  
            print str(e)  
            return False  
    if __name__ == '__main__':  
        if send_mail(mailto_list,"hello","<a ):  
            print "發(fā)送成功"  
        else:  
            print "發(fā)送失敗"  
    

    或者你也可以在消息體中指定Content-type為text/html,如下實(shí)例:

    #!/usr/bin/python
    
    import smtplib
    
    message = """From: From Person <from@fromdomain.com>
    To: To Person <to@todomain.com>
    MIME-Version: 1.0
    Content-type: text/html
    Subject: SMTP HTML e-mail test
    
    This is an e-mail message to be sent in HTML format
    
    <b>This is HTML message.</b>
    <h1>This is headline.</h1>
    """
    
    try:
       smtpObj = smtplib.SMTP('localhost')
       smtpObj.sendmail(sender, receivers, message)         
       print "Successfully sent email"
    except SMTPException:
       print "Error: unable to send email"
    

    Python發(fā)送帶附件的郵件

    發(fā)送帶附件的郵件,首先要?jiǎng)?chuàng)建MIMEMultipart()實(shí)例,然后構(gòu)造附件,如果有多個(gè)附件,可依次構(gòu)造,最后利用smtplib.smtp發(fā)送。

    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    import smtplib
    
    #創(chuàng)建一個(gè)帶附件的實(shí)例
    msg = MIMEMultipart()
    
    #構(gòu)造附件1
    att1 = MIMEText(open('d:\\123.rar', 'rb').read(), 'base64', 'gb2312')
    att1["Content-Type"] = 'application/octet-stream'
    att1["Content-Disposition"] = 'attachment; filename="123.doc"'#這里的filename可以任意寫,寫什么名字,郵件中顯示什么名字
    msg.attach(att1)
    
    #構(gòu)造附件2
    att2 = MIMEText(open('d:\\123.txt', 'rb').read(), 'base64', 'gb2312')
    att2["Content-Type"] = 'application/octet-stream'
    att2["Content-Disposition"] = 'attachment; filename="123.txt"'
    msg.attach(att2)
    
    #加郵件頭
    msg['to'] = 'YYY@YYY.com'
    msg['from'] = 'XXX@XXX.com'
    msg['subject'] = 'hello world'
    #發(fā)送郵件
    try:
        server = smtplib.SMTP()
        server.connect('smtp.XXX.com')
        server.login('XXX','XXXXX')#XXX為用戶名,XXXXX為密碼
        server.sendmail(msg['from'], msg['to'],msg.as_string())
        server.quit()
        print '發(fā)送成功'
    except Exception, e:  
        print str(e) 
    

    以下實(shí)例指定了Content-type header 為 multipart/mixed,并發(fā)送/tmp/test.txt 文本文件:

    #!/usr/bin/python
    
    import smtplib
    import base64
    
    filename = "/tmp/test.txt"
    
    # 讀取文件內(nèi)容并使用 base64 編碼
    fo = open(filename, "rb")
    filecontent = fo.read()
    encodedcontent = base64.b64encode(filecontent)  # base64
    
    sender = 'webmaster@tutorialpoint.com'
    reciever = 'amrood.admin@gmail.com'
    
    marker = "AUNIQUEMARKER"
    
    body ="""
    This is a test email to send an attachement.
    """
    # 定義頭部信息
    part1 = """From: From Person <me@fromdomain.net>
    To: To Person <amrood.admin@gmail.com>
    Subject: Sending Attachement
    MIME-Version: 1.0
    Content-Type: multipart/mixed; boundary=%s
    --%s
    """ % (marker, marker)
    
    # 定義消息動(dòng)作
    part2 = """Content-Type: text/plain
    Content-Transfer-Encoding:8bit
    
    %s
    --%s
    """ % (body,marker)
    
    # 定義附近部分
    part3 = """Content-Type: multipart/mixed; name=\"%s\"
    Content-Transfer-Encoding:base64
    Content-Disposition: attachment; filename=%s
    
    %s
    --%s--
    """ %(filename, filename, encodedcontent, marker)
    message = part1 + part2 + part3
    
    try:
       smtpObj = smtplib.SMTP('localhost')
       smtpObj.sendmail(sender, reciever, message)
       print "Successfully sent email"
    except Exception:
       print "Error: unable to send email"
    
    關(guān)閉
    程序員人生
    主站蜘蛛池模板: 亚洲欧美精品中文字幕 | 在线观看a网站 | 男人和女人全黄一级毛片 | 久草精品视频在线播放 | 黑人性猛交xxxx乱大交一 | 亚洲a在线播放 | 一级淫| 国产精品久久一区 | 最近的中文字幕在线国语 | 欧美毛片免费观看 | 欧美成人国产一区二区 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 美女毛片免费 | 亚洲欧美日韩在线观看看另类 | 午夜爱爱免费视频 | 成人欧美一区二区三区视频xxx | 真实的伦伦啪啪 | 亚洲精品国产一区二区图片欧美 | 欧美一级成人毛片视频 | 亚洲黄色三级视频 | 精品久久九九 | 黄色免费观看视频网站 | 欧美一级日韩 | 色聚网久久综合 | 欧美在线观看视频一区 | 韩国人hdxxxx美女 | 免费一区二区三区四区五区 | 亚洲另类视频 | 欧美成人黑人xx视频免费观看 | 2022偷拍午夜视频在线播放 | 国产日产欧产精品精品推荐小说 | 亚洲品质自拍视频网站 | 国内精品免费一区二区三区 | 久久精品隔壁老王影院 | jizzjizz大全| 亚洲欧美一级夜夜爽w | 欧美日韩亚洲精品一区二区 | 亚洲伊人成综合人影院小说 | 亚洲高清在线观看播放 | 九九精品视频一区二区三区 | 91在线 一区 二区三区 |