国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解python發送各類郵件的主要方法

2020-02-23 04:12:57
字體:
來源:轉載
供稿:網友

 python中email模塊使得處理郵件變得比較簡單,今天著重學習了一下發送郵件的具體做法,這里寫寫自己的的心得,也請高手給些指點。

一、相關模塊介紹

發送郵件主要用到了smtplib和email兩個模塊,這里首先就兩個模塊進行一下簡單的介紹:

1、smtplib模塊

smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])

SMTP類構造函數,表示與SMTP服務器之間的連接,通過這個連接可以向smtp服務器發送指令,執行相關操作(如:登陸、發送郵件)。所有參數都是可選的。

host:smtp服務器主機名

port:smtp服務的端口,默認是25;如果在創建SMTP對象的時候提供了這兩個參數,在初始化的時候會自動調用connect方法去連接服務器。

smtplib模塊還提供了SMTP_SSL類和LMTP類,對它們的操作與SMTP基本一致。

smtplib.SMTP提供的方法:

SMTP.set_debuglevel(level):設置是否為調試模式。默認為False,即非調試模式,表示不輸出任何調試信息。

SMTP.connect([host[, port]]):連接到指定的smtp服務器。參數分別表示smpt主機和端口。注意: 也可以在host參數中指定端口號(如:smpt.yeah.net:25),這樣就沒必要給出port參數。

SMTP.docmd(cmd[, argstring]):向smtp服務器發送指令。可選參數argstring表示指令的參數。

SMTP.helo([hostname]) :使用"helo"指令向服務器確認身份。相當于告訴smtp服務器“我是誰”。

SMTP.has_extn(name):判斷指定名稱在服務器郵件列表中是否存在。出于安全考慮,smtp服務器往往屏蔽了該指令。

SMTP.verify(address) :判斷指定郵件地址是否在服務器中存在。出于安全考慮,smtp服務器往往屏蔽了該指令。

SMTP.login(user, password) :登陸到smtp服務器。現在幾乎所有的smtp服務器,都必須在驗證用戶信息合法之后才允許發送郵件。

 SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]) :發送郵件。這里要注意一下第三個參數,msg是字符串,表示郵件。我們知道郵件一般由標題,發信人,收件人,郵件內容,附件等構成,發送郵件的時候,要注意msg的格式。這個格式就是smtp協議中定義的格式。

SMTP.quit() :斷開與smtp服務器的連接,相當于發送"quit"指令。(很多程序中都用到了smtp.close(),具體與quit的區別google了一下,也沒找到答案。)

2、email模塊

emial模塊用來處理郵件消息,包括MIME和其他基于RFC 2822 的消息文檔。使用這些模塊來定義郵件的內容,是非常簡單的。其包括的類有(更加詳細的介紹可見:http://docs.python.org/library/email.mime.html):

class email.mime.base.MIMEBase(_maintype, _subtype, **_params):這是MIME的一個基類。一般不需要在使用時創建實例。其中_maintype是內容類型,如text或者image。_subtype是內容的minor type 類型,如plain或者gif。 **_params是一個字典,直接傳遞給Message.add_header()。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黔南| 昭平县| 饶平县| 兴城市| 咸阳市| 西畴县| 胶州市| 诏安县| 长寿区| 佳木斯市| 云龙县| 通许县| 繁昌县| 卢氏县| 电白县| 梨树县| 富民县| 诏安县| 通海县| 五台县| 巴楚县| 张北县| 卓尼县| 黑山县| 中牟县| 台前县| 宣城市| 阳泉市| 渑池县| 莎车县| 无为县| 阿克苏市| 平罗县| 富源县| 绥德县| 旬阳县| 山东省| 寻乌县| 施甸县| 黑水县| 左云县|