91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現郵件功能的方法

發布時間:2020-07-21 11:45:09 來源:億速云 閱讀:165 作者:小豬 欄目:開發技術

這篇文章主要講解了Python實現郵件功能的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

用Python的smtplib就可以簡單的實現郵件功能。什么是SMTP,郵件功能怎么實現?

SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協議,它是一組用于由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。

python的smtplib提供了一種很方便的途徑發送電子郵件。它對smtp協議進行了簡單的封裝。

Python創建 SMTP 對象語法如下:

import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

參數說明:

host: SMTP 服務器主機。 你可以指定主機的ip地址或者域名如: runoob.com,這個是可選參數。

port: 如果你提供了 host 參數, 你需要指定 SMTP 服務使用的端口號,一般情況下 SMTP 端口號為25。

local_hostname: 如果 SMTP 在你的本機上,你只需要指定服務器地址為 localhost 即可。

Python SMTP 對象使用 sendmail 方法發送郵件,語法如下:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

參數說明:

from_addr: 郵件發送者地址。

to_addrs: 字符串列表,郵件發送地址。

msg: 發送消息

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

分享給大家供大家參考。具體實現方法如下:

import smtplib, socket
fromaddr = a@b.com
toaddrs = ["c@d.com",   "e@f.com"]
msg = open("multimsg.eml", "r").read()
try:
 server = smtplib.SMTP('10.0.0.1')
 result = server.sendmail(fromaddr, toaddrs, msg)
 server.quit()
 if result:
  for r in result.keys():
   print "Error sending to", r
   rt = result[r]
   print "Code", rt[0], ":", rt[1]
except (smtplib.SMTPException, socket.error), arg:
 print "SMTP Server could not send mail", arg

實例補充:

python實現發送郵件功能

'''套接字是為特定的網絡協議(例如TCP/IP,ICMP/IP,UDP/IP等),允許程序和接受并進行連接,要在python 中建立具有TCP和流套接字的簡單服務器,需要使用socket模塊,利用該模塊包含的函數和類定義,可生成通過網絡通信的程序,分為六步服務端的一些方法:
1.  何為套接字
內核中套接字是一層一層進行抽象展示的,把共性的東西抽取出來,這樣對外提供的接口可以盡量的統一,Socket函數中的三個參數其實就是把抽象的socket具體化的條件,famil參數決定了圖中所示的第二層通信域,type決定了第三層的通信模式,protocol
決定了第四層真正的通信協議。
首先了解這個內容是是在哪個層?是如何通信的
http://www.cnblogs.com/wangcq/p/3520400.html,看了以方法,大體服務器和客戶端就分為這幾步
1.創建對象
2.將socket綁定在指定地址上,socket.bing(地址)
3.第3步,綁定后,必須準備好套接字,對端口進行監聽 socket.listen(backlog)
4.socket的accept方法等待客戶請求一個連接
5.處理階段
6.傳輸結束,服務器調用socket的close方法以關閉連接
客戶端就為4個步驟:
1.創建socket連接服務器
2.使用socket的connect方法連接服務器 socket.connect((host,port))
3.客戶和服務器通過send和recv方法通信
4.調用socket的close方法通信
'''
#encoding=utf-8
import socket
t = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
'''創建socket對象,格式socket.socket(family,type),family格式是AF_INET(對于IPV4協議的TCP和 UDP),type參數,SOCK_STREAM(流套接字,提供面向連接,可靠的數據服務,用于TCP)或者 SOCK_DGRAM(數據報文套接字提供無無面向連接,不可靠的數據服務,用于UDP),SOCK_RAW(raw套接字,較低層的協議)'''
t.connect(('smtp.126.com', 25)) #建立連接
print "start", t.recv(1024) #使用recv方法通信,傳輸數據 
t.send("helo 126.com\r\n") #發送內容
print "111", t.recv(1024) 
t.send("auth login\r\n") #進行郵箱的登錄
print "222", t.recv(1024) #打印在控制臺
t.send("dGVzdG1hbjE5ODA=\r\n") #base64位方式編碼,解碼為:testman1980
print "333", t.recv(1024) #打印在控制臺
t.send("Zm9zdGVyd3UxOTc4\r\n")#base64位方式編碼,解碼為:fosterwu1978
print "444", t.recv(1024) #打印在控制臺
t.send("mail from:<xxx1980@126.com>\r\n") #發件人 這里不是很清楚同樣在下方的郵件內容中,為何還要在一次
print "555", t.recv(1024) #打印在控制臺
t.send("rcpt to:<xxx@qq.com>\r\n") #改變了收件人,但是不明白下方也有一個收件人,下方是否會收到消息,并且優先級是怎樣的,明天實驗來看
print "666", t.recv(1024) #打印在控制臺
t.send("data\r\n")  #data的作用目前還沒有發現,明天實踐
print "777", t.recv(1024)  #打印在控制臺
#發送郵件內容
t.send("from:xxx@126.com\r\n") #optional,可偽造別人的發件記錄
t.send("to:xxx@qq.com\r\n")  #optional,可發給任何人
t.send("subject:hello!\r\n")
t.send("\r\n") #按照smtp協議要求,在標題后要發個空行
t.send("mail test1111!\r\n") #發送郵件內容
t.send(".\r\n")
print "888", t.recv(1024)

看完上述內容,是不是對Python實現郵件功能的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辉县市| 昌图县| 陈巴尔虎旗| 日喀则市| 拉孜县| 宣恩县| 容城县| 三原县| 莆田市| 庆阳市| 大余县| 米林县| 河津市| 淮阳县| 武宣县| 察雅县| 花莲市| 辽中县| 平度市| 通许县| 南江县| 贵德县| 宁蒗| 临猗县| 新竹县| 久治县| 北海市| 林州市| 霸州市| 东方市| 得荣县| 鄄城县| 嘉义市| 隆回县| 铁岭县| 炉霍县| 张家口市| 黑水县| 故城县| 云霄县| 聂荣县|