發送電子郵件子產品(smtplib)
大概思路:執行個體化smtp對象,連接配接smtp伺服器以及開放的端口,調用starttls()方法建立安全連結,登入賬戶和授權碼,發送郵件,最後退出
腳本示例:
#!/usr/bin/python
import smtplib
import string
host="smtp.qq.com"
subject="test email from python"
to="[email protected]"
send="[email protected]"
text='python rules them all!'
body = "\r\n".join((
"from: %s" % send,
"to: %s" % to,
"subject: %s" % subject,
"",
text
))
server=smtplib.smtp()
server.connect(host,"587")
server.starttls()
server.login("[email protected]","lgjahba")
server.sendmail(send,to,body)
server.quit()
探測web服務品質(pycurl)
思路:導入pycurl子產品,執行個體化curl對象,設定測試屬性,擷取測試結果
import pycurl
import time
import sys
import os,sys
url=input("enter the url you want to query:\n ")
c=pycurl.curl()
c.setopt(pycurl.url,url)
c.setopt(pycurl.connecttimeout,5) #定義請求連接配接數
c.setopt(pycurl.noprogress,1) #屏蔽下載下傳進度條
c.setopt(pycurl.forbid_reuse,1)#完成互動後強制斷開連接配接,不重用
c.setopt(pycurl.maxredirs,1) #指定http重定向的最大數為1
c.setopt(pycurl.dns_cache_timeout,30) #設定儲存dns資訊的時間為30秒
indexfile=open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb")
c.setopt(pycurl.writeheader,indexfile)
c.setopt(pycurl.writedata,indexfile)
try:
c.perform() #送出請求
except exception as e:
print("connection error:",str(e))
indexfile.close()
c.close()
sys.exit()
dns_time=c.getinfo(c.namelookup_time) #擷取dns計息時間
connect_time=c.getinfo(c.connect_time) #擷取建立連接配接的時間
pretransfer_time=c.getinfo(c.pretransfer_time) #擷取從建立連接配接到準備傳輸的時間
starttransfer_time=c.getinfo(c.starttransfer_time) #擷取從建立連接配接到傳輸開始的時間
total_time=c.getinfo(c.total_time) #擷取傳輸的總時間
http_code=c.getinfo(c.http_code) #擷取http狀态碼
size_downland=c.getinfo(c.size_download) #擷取下載下傳包大小
head_size=c.getinfo(c.header_size) #擷取http頭部大小
speed_downland=c.getinfo(c.speed_download) # 擷取平均下載下傳速度
print("http狀态碼:%s" % (http_code) )
print("dns解析時間:%.2f" % (dns_time))
print("建立連接配接時間:%.2f" % (connect_time))
print("準備傳輸時間:%.2f:" % (pretransfer_time))
print("傳輸開始時間:%.2f:" % (starttransfer_time))
print("傳輸結束總時間:%.2f" % (total_time))
print("下載下傳資料包大小:%d byte" % size_downland)
print("http頭部大小:%d byte" % head_size)
print("平均下載下傳速度:%d bytes/s" % speed_downland)
indexfile.close()
c.close()