SMTP模塊
這么多已定義的類中,我們最常用的的還是smtplib.SMTP類,就具體看看該類的用法:
smtp實例封裝一個smtp連接,它支持所有的SMTP和ESMTP操作指令,如果host和port參數(shù)被定義,則smtp會在初始化期間自動調(diào)用connect()方法,如果connect()方法失敗,則會觸發(fā)SMTPConnectError異常,timeout參數(shù)設(shè)置了超時時間。在一般的調(diào)用過程中,應(yīng)該遵connetc()、sendmail()、quit()步驟。
SMTP模塊主要方法
下面我們來看看該類的方法:
代碼如下:
SMTP.set_debuglevel(level)
設(shè)置輸出debug調(diào)試信息,默認不輸出調(diào)試信息。
SMTP.docmd(cmd[, argstring])
發(fā)送一個command到smtp服務(wù)器,
SMTP.connect([host[, port]])
連接到指定的smtp服務(wù)器,默認是本機的25端口。也可以寫成hostname:port的形式。
SMTP.helo([hostname])
使用helo指令向smtp服務(wù)器確認你的身份。
SMTP.ehlo([hostname])
使用ehlo指令向esmtp服務(wù)器確認你的身份。
SMTP.ehlo_or_helo_if_needed()
如果在以前的會話連接中沒有提供ehlo或者helo指令,這個方法調(diào)用ehlo()或者helo()。
SMTP.has_extn(name)
判斷指定的名稱是否在smtp服務(wù)器上。
SMTP.verify(address)
判斷郵件地址是否在smtp服務(wù)器上存在。
SMTP.login(user, password)
登陸需要驗證的smtp服務(wù)器,如果之前沒有提供ehlo或者helo指令,則會先嘗試ESMTP的ehlo指令。
SMTP.starttls([keyfile[, certfile]])
使smtp連接運行在TLS模式,所有的smtp指令都會被加密。
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
發(fā)送郵件,該方法需要一些郵件地址和消息。
SMTP.quit()
終止smtp會話并且關(guān)閉連接。
經(jīng)過搜索學習發(fā)現(xiàn)網(wǎng)上大多都是用smtp類的sendmail這個方法來發(fā)郵件,那就先看看這個例子:
使用sendmail發(fā)送郵件
代碼如下:
import smtplib
import time
from email.message import Message
from time import sleep
import email.utils
import base64
smtpserver = 'smtp.gmail.com'
username = 'username@gmail.com'
password = 'password '
from_addr = 'from@gmail.com'
to_addr = 'tooooooo@qq.com'
cc_addr = 'ccccccccc@qq.com'
time = email.utils.formatdate(time.time(),True)
message = Message()
message['Subject'] = 'Mail Subject'
message['From'] = from_addr
message['To'] = to_addr
message['Cc'] = cc_addr
message.set_payload('mail content '+time)
msg = message.as_string()
sm = smtplib.SMTP(smtpserver,port=587,timeout=20)
sm.set_debuglevel(1)
sm.ehlo()
sm.starttls()
sm.ehlo()
sm.login(username, password)
sm.sendmail(from_addr, to_addr, msg)
sleep(5)
sm.quit()
Email模塊
如果想在郵件中攜帶附件、使用html書寫郵件,附帶圖片等等,就需要使用email模塊及其子模塊。下面來看看email包,email包是用來管理email信息的,它包括MIME和其他基于RFC 2822的消息格式。email包的主要特征是在它內(nèi)部解析和生成email信息是分開的模塊來實現(xiàn)的。
新聞熱點
疑難解答
圖片精選