星海爭霸21全功能兌換碼新手獎勵1、7小時遊戲時間(14天內)解除所有試玩版本限制直到7小時耗盡,如種族、匹配模式、戰役、地圖等詳細資訊(150119更新)4505624695013984483730049
2020-11-30 03:45:43
本文介紹了郵件傳輸的SMTP協定,並根據該協定,利用了Python的‘smtplib’和‘email‘模組,完成郵件的成功傳送。
首先了解SMTP(簡單郵件傳輸協定),郵件傳送代理程式使用SMTP協定來傳送電郵到接收者的郵件伺服器。SMTP協定只能用來傳送郵件,不能用來接收郵件,而大多數的郵件傳送伺服器都是使用SMTP協定。SMTP協定的預設TCP埠號是25。
本文主要介紹利用'smtplib','email'兩個模組來實現郵件的傳送,可以如下檢視兩個模組的函數和方法:
smtplib模組簡介:
smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
此為SMTP類建構函式,表示與SMTP伺服器之間的連線,並根據這個連線向smtp伺服器傳送指令,執行相關操作(如:登陸、傳送郵件),且每個引數都是可選的。
其中最重要的引數:
host:smtp伺服器主機名
port:smtp服務的埠,預設是25;
如果在建立SMTP物件的時候提供了這兩個引數,在初始化的時候會自動呼叫connect方法去連線伺服器。
smtplib.SMTP還提供了如下方法:
SMTP.set_debuglevel(level):設定是否為偵錯模式
SMTP.connect([host[, port]]):連線到指定的smtp伺服器。引數分別表示 smpt主機和埠。
SMTP.docmd(cmd[, argstring]):向smtp伺服器傳送指令。
SMTP.helo([hostname]) :使用"helo"指令向伺服器確認身份。
SMTP.login(user, password):登陸到smtp伺服器。現在幾乎所有smtp伺服器,都必須在驗證使用者資訊合法之後才允許傳送郵件。(重要!)
SMTP.sendmail(from_addr,to_addrs,msg[,mail_options,rcpt_options]):傳送郵件。這裡要注意一下第三個引數,msg是字串,表示郵件。我們知道郵件一般由標題,發信人,收件人,郵件內容,附件等構成,傳送郵件的時候,要注意msg的格式。這個格式就是smtp協定中定義的格式。SMTP.quit() :斷開與smtp伺服器的連線,相當於傳送"quit"指令。(重要!)
常用的函數方法:
email模組
1.class email.message.Message
__getitem__,__setitem__實現obj[key]形式的存取。
Msg.attach(playload): 向當前Msg新增playload。
Msg.set_playload(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.MIMEMult ipart。這個類是MIMEBase的直接子類,用來生成包含多個部分的郵件體的MIME物件。
4.class email.mime.text.MIMEText(_text)
使用字串_text來生成MIME物件的主體文字。
獲得所需要使用的郵箱的host地址和port埠號,(本文使用的是163郵箱,對應的smtp伺服器地址:mail.163.com,埠號25)
常用郵箱的smtp伺服器地址和埠號如圖:
編寫程式如下:
#! /usr/bin/env python
import smtpli
from email.mime.text import MIMEText
mailto_list=['xxxx@xxx.com'] #收件人(列表)
mail_host="smtp.163.com" #使用的郵箱的smtp伺服器地址
mail_user="name" #使用者名稱
mail_pass="pwd" #密碼
mail_postfix="postfix" #郵箱的字尾
def send_mail(to_list,sub,content):
me="hello"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content,_subtype='plain')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list) #將收件人列表以‘;’分隔
try:
server = smtplib.SMTP()
server.connect(mail_host) #連線伺服器
server.login(mail_user,mail_pass) #登入操作
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
except Exception, e:
print str(e)
return False
for i in range(5): #傳送五封,不過會被攔截的。。。
if send_mail(mailto_list,"hello","haha!"): #郵件主題和郵件內容
print "done!"
else:
print "failed!"
最後,可以執行編寫的py檔案,可以得到如圖所是的結果,代表郵件傳送成功。
這樣,就能成功實現用Python傳送郵件啦!可以看到接收端接收到的郵件如:
相關文章
星海爭霸21全功能兌換碼新手獎勵1、7小時遊戲時間(14天內)解除所有試玩版本限制直到7小時耗盡,如種族、匹配模式、戰役、地圖等詳細資訊(150119更新)4505624695013984483730049
2020-11-30 03:45:43
我們經常會玩決勝時刻戰區遊戲,但是有很多朋友不知道決勝時刻戰區國際服註冊方法,下面就詳細說下決勝時刻戰區國際服註冊方法。1首先我們開啟自己電腦中的瀏覽器,比如360瀏覽器
2020-11-29 16:08:59
決勝時刻黑色行動4的應用獲取的方法。1準備好網路的網速,開啟瀏覽器的頁面。 2決勝時刻黑色行動4將其輸入到搜尋頁中,點選搜尋。 3選擇圖中展示的決勝時刻黑色行動4中文版網頁
2020-11-29 16:06:30
決勝時刻是一個很好玩的遊戲,但是安裝過程比較困難,下面小編和你分享一下經驗! 1一般有很多個壓縮檔案的那種,任意解壓一個壓縮包之後會生成一個映象用虛擬光碟機載入,之後按用光
2020-11-29 10:07:32
小編教你決勝時刻9BO2.怎麼安裝,希望你的生活多姿多彩~ 1首先,你買的基本可以確定,是盜版,或者說所謂的偽正版——同學,多去steam吧或者戰地3吧看一看,會提高你對盜版/偽正版的鑑
2020-11-29 05:49:58
目前很多決勝時刻的玩家都在找版本10的中文版,其實現在正版的當中還沒有中文,退而求其次吧,小編這裡分享一些貼圖大家參考一下 1基礎選單,直接看圖片吧 2基礎選單,直接看圖片吧 3
2020-11-29 05:29:49