首頁 > 軟體

Python使用smtplib 實現單發和群發郵件驗證碼

2022-05-18 10:00:03

前言:

Python smtplib 教學:展示瞭如何使用 smtplib 模組在 Python 中傳送電子郵件。 要傳送電子郵件,我們使用 Python 開發伺服器,Mailtrap 線上服務和共用的網路託管郵件伺服器。

smtplib庫

python傳送郵件需要用到smtplib庫,先簡單瞭解一下

SMTP

簡單郵件傳輸協定(SMTP)是用於電子郵件傳輸的通訊協定。 Is 是一個 Internet 標準,該標準於 1982 年由 RFC 821 首次定義,並於 2008 年由 RFC 5321 更新為擴充套件 SMTP 新增。 郵件伺服器和其他郵件傳輸代理使用 SMTP 傳送和接收郵件。

smtplib是一個 Python 庫,用於使用簡單郵件傳輸協定(SMTP)傳送電子郵件。 smtplib是內建模組; 我們不需要安裝它。 它抽象了 SMTP 的所有複雜性。

郵件伺服器

要實際傳送電子郵件,我們需要有權存取郵件伺服器。 Python 帶有一個簡單的開發郵件伺服器。 Mailslurper 是易於使用的本地開發伺服器。 共用的虛擬主機提供商使我們可以存取郵件伺服器。 我們可以在帳戶中找到詳細資訊。

smtp協定的基本命令包括:

  • HELO 向伺服器標識使用者身份
  • MAIL 初始化郵件傳輸 mail from:
  • RCPT 標識單個的郵件接收人;常在MAIL命令後面,可有多個rcpt to:
  • DATA 在單個或多個RCPT命令後,表示所有的郵件接收人已標識,並初始化資料傳輸,以.結束
  • VRFY 用於驗證指定的使用者/郵箱是否存在;由於安全方面的原因,伺服器常禁止此命令
  • EXPN 驗證給定的郵箱列表是否存在,擴充郵箱列表,也常被禁用
  • HELP 查詢伺服器支援什麼命令
  • NOOP 無操作,伺服器應響應OK
  • QUIT 結束對談
  • RSET 重置對談,當前傳輸被取消
  • MAIL FROM 指定傳送者地址
  •  RCPT TO 指明的接收者地址

實戰

1.126郵箱一般預設關閉SMTP服務,我們得先去開啟它

2.Python程式碼

# smtplib 用於郵件的發信動作
import smtplib
from email.mime.text import MIMEText
# email 用於構建郵件內容
from email.header import Header
# 用於構建郵件頭
# 發信方的資訊:發信郵箱,126 郵箱授權碼
from_addr = 'trobot@126.com'
password = 'POP3/SMTP服務授權密碼,上一步可以獲取'
# 收信方郵箱
to_addr = 'xxxx@163.com'
# 發信伺服器
smtp_server = 'smtp.126.com'
"""標題"""
head="郵箱驗證碼"
"""正文"""
text="【TRobot】您的驗證碼32123,該驗證碼5分鐘內有效,請勿洩漏於他人!"
# 郵箱正文內容,第一個引數為內容,第二個引數為格式(plain 為純文字),第三個引數為編碼
msg = MIMEText(text,'plain','utf-8')
# 郵件頭資訊
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addr)
msg['Subject'] = Header(head)
# 開啟發信服務,這裡使用的是加密傳輸
#server = smtplib.SMTP_SSL()
server=smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server,465)
# 登入發信郵箱
server.login(from_addr, password)
# 傳送郵件
server.sendmail(from_addr, to_addr, msg.as_string())
# 關閉伺服器
server.quit()

到此這篇關於Python使用smtplib 實現單發和群發郵件驗證碼的文章就介紹到這了,更多相關python傳送郵件內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com