Python 中的 SMTP 協議客戶端 (smtplib)
Python 的標準庫包含 'smtplib' 模組,該模組定義了一個 SMTP 客戶端會話物件,可用於透過 Python 程式傳送郵件。
郵件伺服器是一種處理和傳遞網際網路電子郵件的應用程式。外發郵件伺服器實現 SMTP(簡單郵件傳輸協議)伺服器,這是電子郵件傳輸的網際網路標準。
收件郵件伺服器主要有兩種:POP3(郵局協議)和 IMAP(網際網路郵件訪問協議)。
smptlib.SMTP() 函式
此函式返回 SMTP 類的物件。它封裝並管理與 SMTP 或 ESMTP 伺服器的連線。此函式的簽名中定義了以下引數:
| 主機 (host) | 一個字串,表示要連線到的遠端主機的名稱。 |
| 埠 (port) | 指定要連線到的埠的數字。預設情況下,使用 smtplib.SMTP_PORT。 |
| 本地主機名 (local_hostname) | 在 HELO/EHLO 命令中用作本地主機的完全限定域名 (FQDN)。 |
| 源地址 (source_address) | 一個 2 元組 (host, port) 物件,套接字將繫結到該物件。 |
它具有以下支援 SMTP 操作的方法:
connect() -
此方法建立與給定埠上的主機的連線。
login() -
此函式採用使用者名稱和密碼引數登入到 SMTP 伺服器。
quit() -
此函式終止 SMTP 會話。
data() -
此函式的“message”引數將傳送到伺服器。
**docmd() -**
此函式傳送命令並返回其響應程式碼。
**ehlo() -**
此函式識別伺服器。
starttls() -
此函式啟動 TLS 模式。
**getreply() -**
此函式以響應程式碼的形式接收來自伺服器的回覆。
**putcmd() -**
此函式向伺服器傳送命令。
send_message() -
此函式將訊息轉換為位元組字串並將其傳遞給傳送郵件。
**sendmail() -**
此命令執行整個郵件事務。
引數如下:
| from_addr | 傳送此郵件的地址。 |
| to_addrs | 要傳送此郵件的地址列表。 |
| msg | 要傳送的訊息。 |
下面的程式碼使用 Gmail 的 smtp 伺服器傳送電子郵件。SMTP 物件使用 Gmail 的 smtp 伺服器,埠為 527。ehlo() 命令識別伺服器。我們還將傳輸層安全啟用到外發郵件訊息。
接下來,透過將憑據作為引數傳遞給它來呼叫 login() 命令。最後,透過附加規定的格式的標題來組裝郵件訊息,並使用 sendmail() 方法傳送。之後關閉 SMTP 物件。
import smtplib
content="HelloWorld"
mail=smtplib.SMTP('smtp.gmail.com',587)
mail.ehlo()
mail.starttls()
sender='pythonanytime@gmail.com'
recipient='mlathkar@gmail.com'
mail.login('pythonanytime@gmail.com','m15v5l61')
header='To:'+receipient+'\n'+'From:'\
+sender+'\n'+'subject:testmail\n'
content=header+content
mail.sendmail(sender,recipient, content)
mail.close()在執行上述指令碼之前,請確保傳送者的 Gmail 帳戶已獲得“安全性較低的應用”的訪問許可權。
https://myaccount.google.com/lesssecureapps
將顯示的切換按鈕設定為“開”。

執行上述設定後執行上述指令碼。該訊息應傳送到收件人的收件箱。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP