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

前言:

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 = '[email protected]'
password = 'POP3/SMTP服務授權密碼,上一步可以獲取'
# 收信方郵箱
to_addr = '[email protected]'
# 發信服務器
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發送郵件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: