最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

二種python發(fā)送郵件實例講解(python發(fā)郵件附件可以使用email模塊實現(xiàn))

 更新時間:2013年12月03日 15:46:38   投稿:zxhpj  
這篇文章主要介紹了使用Python email模塊、smtplib庫發(fā)送郵件的實例,大家參考使用

可以使用Python的email模塊來實現(xiàn)帶有附件的郵件的發(fā)送。

SMTP (Simple Mail Transfer Protocol)
郵件傳送 (Mail Transfer Agent,MTA) 程序使用SMTP協(xié)議來發(fā)送電郵到接收者的郵件服務(wù)器。SMTP協(xié)議只能用來發(fā)送郵件,不能用來接收郵件。大多數(shù)的郵件發(fā)送服務(wù)器 (Outgoing Mail Server) 都是使用SMTP協(xié)議。SMTP協(xié)議的默認TCP端口號是25。

SMTP協(xié)議的一個重要特點是它能夠接力傳送郵件。它工作在兩種情況下:一是電子郵件從客戶機傳輸?shù)椒?wù)器;二是從某一個服務(wù)器傳輸?shù)搅硪粋€服務(wù)器。

POP3 (Post Office Protocol) & IMAP (Internet Message Access Protocol)
POP協(xié)議和IMAP協(xié)議是用于郵件接收的最常見的兩種協(xié)議。幾乎所有的郵件客戶端和服務(wù)器都支持這兩種協(xié)議。

POP3協(xié)議為用戶提供了一種簡單、標(biāo)準(zhǔn)的方式來訪問郵箱和獲取電郵。使用POP3協(xié)議的電郵客戶端通常的工作過程是:連接服務(wù)器、獲取所有信息并保存在用戶主機、從服務(wù)器刪除這些消息然后斷開連接。POP3協(xié)議的默認TCP端口號是110。

IMAP協(xié)議也提供了方便的郵件下載服務(wù),讓用戶能進行離線閱讀。使用IMAP協(xié)議的電郵客戶端通常把信息保留在服務(wù)器上直到用戶顯式刪除。這種特性使得多個客戶端可以同時管理一個郵箱。IMAP協(xié)議提供了摘要瀏覽功能,可以讓用戶在閱讀完所有的郵件到達時間、主題、發(fā)件人、大小等信息后再決定是否下載。IMAP協(xié)議的默認TCP端口號是143。

郵件格式 (RFC 2822)
每封郵件都有兩個部分:郵件頭和郵件體,兩者使用一個空行分隔。

郵件頭每個字段 (Field) 包括兩部分:字段名和字段值,兩者使用冒號分隔。有兩個字段需要注意:From和Sender字段。From字段指明的是郵件的作者,Sender字段指明的是郵件的發(fā)送者。如果From字段包含多于一個的作者,必須指定Sender字段;如果From字段只有一個作者并且作者和發(fā)送者相同,那么不應(yīng)該再使用Sender字段,否則From字段和Sender字段應(yīng)該同時使用。

郵件體包含郵件的內(nèi)容,它的類型由郵件頭的Content-Type字段指明。RFC 2822定義的郵件格式中,郵件體只是單純的ASCII編碼的字符序列。

MIME (Multipurpose Internet Mail Extensions) (RFC 1341)
MIME擴展郵件的格式,用以支持非ASCII編碼的文本、非文本附件以及包含多個部分 (multi-part) 的郵件體等。

Python email模塊

1. class email.message.Message

__getitem__,__setitem__實現(xiàn)obj[key]形式的訪問。
Msg.attach(playload): 向當(dāng)前Msg添加playload。
Msg.set_playload(playload): 把整個Msg對象的郵件體設(shè)成playload。
Msg.add_header(_name, _value, **_params): 添加郵件頭字段。
2. class email.mime.base.MIMEBase(_maintype, _subtype, **_params)
所有MIME類的基類,是email.message.Message類的子類。

3. class email.mime.multipart.MIMEMultipart()

在3.0版本的email模塊 (Python 2.3-Python 2.5) 中,這個類位于email.MIMEMultipart.MIMEMultipart。
這個類是MIMEBase的直接子類,用來生成包含多個部分的郵件體的MIME對象。

4. class email.mime.text.MIMEText(_text)

使用字符串_text來生成MIME對象的主體文本。

代碼實現(xiàn)

復(fù)制代碼 代碼如下:

!/usr/bin/env python
# -*- coding: UTF-8 -*-
 
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
 
# python 2.3.*: email.Utils email.Encoders
from email.utils import COMMASPACE,formatdate
from email import encoders
 
import os
 
#server['name'], server['user'], server['passwd']
def send_mail(server, fro, to, subject, text, files=[]):
    assert type(server) == dict
    assert type(to) == list
    assert type(files) == list
 
    msg = MIMEMultipart()
    msg['From'] = fro
    msg['Subject'] = subject
    msg['To'] = COMMASPACE.join(to) #COMMASPACE==', '
    msg['Date'] = formatdate(localtime=True)
    msg.attach(MIMEText(text))
 
    for file in files:
        part = MIMEBase('application', 'octet-stream') #'octet-stream': binary data
        part.set_payload(open(file, 'rb'.read()))
        encoders.encode_base64(part)
        part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
        msg.attach(part)
 
    import smtplib
    smtp = smtplib.SMTP(server['name'])
    smtp.login(server['user'], server['passwd'])
    smtp.sendmail(fro, to, msg.as_string())
    smtp.close()

利用python的smtplib庫實現(xiàn)郵件發(fā)送

復(fù)制代碼 代碼如下:

import smtplib
def sendmail():
    try:
        smtp=smtplib.SMTP(HOST)
        smtp.login(USER,PASSWORD)     #登錄郵箱
        smtp.sendmail(USER+"@"+PROFIX,TO,MSG)  #發(fā)送郵件
        smtp.quit()
        print 'email send success'
    except Exception,e:
        print e
        print 'email send failed.'

郵件可以發(fā)送了

然后學(xué)習(xí)了一點定義msg
python中有幾個類庫生成豐富的msg格式
總結(jié)一個簡單的MIMEText,可以編輯許多郵件頭信息,也可以編輯郵件格式
from email.MIMEText import MIMEText
msg=MIMEText("要發(fā)送的內(nèi)容","格式,例如:html,plain","編碼,例如:gb2312,utf-8")
msg['From']='郵件中顯示的發(fā)送方的名字'
msg['To']='郵件中顯示收件方的名字'
msg['Subject']='郵件標(biāo)題'
這些都可以不設(shè)置

相關(guān)文章

  • 詳解Python爬取并下載《電影天堂》3千多部電影

    詳解Python爬取并下載《電影天堂》3千多部電影

    這篇文章主要介紹了Python爬取并下載《電影天堂》3千多部電影,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 如何使用python計算復(fù)雜三角函數(shù)

    如何使用python計算復(fù)雜三角函數(shù)

    當(dāng)涉及到計算復(fù)雜的三角函數(shù)時,Python 提供了強大的數(shù)學(xué)庫和函數(shù)來幫助我們進行計算,在本篇博客中,我將介紹如何使用 Python 來計算復(fù)雜的三角函數(shù),需要的朋友可以參考下
    2023-08-08
  • Python?operator模塊的使用詳解

    Python?operator模塊的使用詳解

    本文主要介紹了Python?operator模塊的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2023-06-06
  • Python實戰(zhàn)之用tkinter庫做一個鼠標(biāo)模擬點擊器

    Python實戰(zhàn)之用tkinter庫做一個鼠標(biāo)模擬點擊器

    這篇文章主要介紹了Python實戰(zhàn)之用tkinter庫做一個鼠標(biāo)模擬點擊器,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python數(shù)據(jù)分析matplotlib的基礎(chǔ)繪圖使用

    python數(shù)據(jù)分析matplotlib的基礎(chǔ)繪圖使用

    這篇文章主要為大家介紹了python數(shù)據(jù)分析matplotlib的基礎(chǔ)繪圖使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 在pycharm創(chuàng)建scrapy項目的實現(xiàn)步驟

    在pycharm創(chuàng)建scrapy項目的實現(xiàn)步驟

    這篇文章主要介紹了在pycharm創(chuàng)建scrapy項目的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 對Django項目中的ORM映射與模糊查詢的使用詳解

    對Django項目中的ORM映射與模糊查詢的使用詳解

    今天小編就為大家分享一篇對Django項目中的ORM映射與模糊查詢的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python多線程、異步+多進程爬蟲實現(xiàn)代碼

    Python多線程、異步+多進程爬蟲實現(xiàn)代碼

    這篇文章主要介紹了Python多線程、異步+多進程爬蟲實現(xiàn)代碼,需要的朋友可以參考下
    2016-02-02
  • Python基礎(chǔ)知識之函數(shù),類,模塊

    Python基礎(chǔ)知識之函數(shù),類,模塊

    今天小編就為大家分享一篇Python函數(shù),類,模塊,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-10-10
  • Python爬蟲防封ip的一些技巧

    Python爬蟲防封ip的一些技巧

    這篇文章主要介紹了Python爬蟲防封ip的一些技巧,對平時學(xué)習(xí)爬蟲有所幫助,感興趣的朋友可以了解下
    2020-08-08

最新評論

高雄县| 安顺市| 浠水县| 北宁市| 阜新市| 米泉市| 枝江市| 延庆县| 灌阳县| 沙河市| 忻城县| 阜新市| 苏尼特左旗| 尤溪县| 孟连| 横峰县| 白水县| 安泽县| 商城县| 高密市| 新龙县| 扎囊县| 吉隆县| 大余县| 屯昌县| 陆良县| 盐山县| 长宁区| 和政县| 庄浪县| 布拖县| 桑日县| 东源县| 石首市| 柘城县| 西乡县| 奉节县| 阳高县| 贺兰县| 天门市| 肃宁县|