Python 網路程式設計測試 Email初探

2021-06-06 07:27:57 字數 1542 閱讀 2087

傳統email包含兩個不同部分 header & body。header部分包含控制資料,body當然就只包含信件本身的資訊了。一封郵件的開始部分總是header , 之後部分為body

不論是通過python來解析郵件或者寄發郵件,對header的了解是必不可少的,下面就簡單介紹下:

from header:向使用者表明郵件的發件人

subject header:用於顯示郵箱摘要

date header:用於記錄時間

message-id header:可以幫助某些程式實現線索

mime header:選擇合適的語言,格式等

下面的code表明纂寫一封郵件,並解析剛才所纂寫的郵件:

#this is the test for email

import sys , traceback , email

from email.mimetext import mimetext

from email import utils

def sendemail():

try:

print('input the message what u want to say: ')

mess = sys.stdin.readline().rstrip()

msg = mimetext(mess)

msg['to'] = '[email protected]'

msg['from'] = '[email protected]'

msg['date'] = utils.formatdate(localtime = 1)

msg['message-id'] = utils.make_msgid()

print msg.as_string()

log = open('log' , 'w')

log.write(msg.as_string())

except:

traceback.print_exc()

sys.exit(1)

def recvemail():

try:

msg = email.message_from_file('log')

print('headers from emails:')

for header , value in msg.items():

print header + ':' + value

if msg.is_multipart():

print('this program cannot handle this')

sys.exit(1)

print(msg.get_payload())

except:

traceback.print_exc()

sys.exit(1)

p.s.似乎從專題的開始,所測試的code都是非常簡單的,可能對經常接觸python的同學來說沒什麼營養,但是對我這種新手來說,首先學會python,通通了解一些,再完成乙個功能複雜(相對於自己之前的code,和自身能力)應用,這種學習方式可能比較適合自己吧

Python網路程式設計測試 DNS

dns就是傳說中的網域名稱解析,完成網域名稱和ip之間的轉換過程,值得注意的是 反向dns是由ip到網域名稱,這需要和逆向相區別。python 2.6以下版本,3.2還沒試過,有了解的同學請指教 並沒有 原生 的提供dns相關功能的module,pydns 在sourcerage上可以直接搜尋到,或...

python 網路程式設計測試 host應答

五一假期最後一天,隨便寫寫code,先上個小小伺服器應答udp請求。由於本人只有一台機器,所以使用的是lo0埠,socket設定為so reuseaddr 伺服器端 test of host import sys socket traceback time host xport sys.argv 1...

Python 網路程式設計測試 HTML解析

python提供了乙個htmlparser的模組,當然現在web page通常都多多少少存在html不規範的問題,比如說但是並沒有關閉 也就是說沒有 雖然xhtml可以避免這種事情的發生 mxtidy 和utidylib通常可以完成html正規化的處理工作。似乎在解析html時,正規表示式就不是那麼...