一、什麼是SMTP
SMTP,即“Simple Mail Transfer Protocol”(簡單郵件傳輸協議),是應用層協議,用於電子郵件的傳輸。
SMTP的工作方式:當一個用戶發出一封郵件,客戶端會將郵件發送到配置的SMTP服務器,SMTP服務器會對郵件進行“分揀”,判斷是發送到哪一個服務器,然後將郵件發送給目標服務器的SMTP服務器,目標服務器再將郵件發送給目標用戶的客戶端。
常用的郵件服務商,例如Gmail,就提供了免費的SMTP服務器。我們可以通過Python來連接這些SMTP服務器,並用Python腳本輕鬆地發送電子郵件。
二、Python SMTP模塊
Python提供了SMTP模塊,可以用於連接SMTP服務器,並發送郵件。
首先,我們需要導入SMTP模塊:
import smtplib
然後,我們需要創建SMTP對象,例如:
smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
這裡,我們用Gmail作為SMTP服務器,端口號為587。如果你使用其他的郵件服務商,則需要根據對應的信息更改SMTP服務器和端口號。
三、Python SMTP對象常用方法
1. login():登錄SMTP服務器,可以使用郵箱地址和授權碼進行驗證。
smtpObj.login('sender@gmail.com', 'password')
2. sendmail():發送郵件,可以設置發件人、收件人、郵件內容。
sender = 'sender@gmail.com' receivers = ['receiver1@gmail.com', 'receiver2@gmail.com'] msg = '郵件內容' smtpObj.sendmail(sender, receivers, msg)
3. quit():斷開SMTP連接。
smtpObj.quit()
四、Python SMTP發送HTML郵件實例
下面是一個簡單的Python腳本,用於向多個收件人發送HTML郵件:
import smtplib from email.mime.text import MIMEText from email.utils import formataddr # 發件人郵箱賬號 my_sender = 'sender@gmail.com' my_password = 'password' # 收件人郵箱賬號 to_list = ['receiver1@gmail.com', 'receiver2@gmail.com'] # 郵件主題和內容 subject = 'Python SMTP發送HTML郵件' content = 'Python SMTP:輕鬆實現郵件發送
這是一封HTML郵件。
' msg = MIMEText(content, 'html', 'utf-8') msg['Subject'] = subject msg['From'] = formataddr(['發件人姓名', my_sender]) # 連接SMTP服務器,發送郵件 try: smtpObj = smtplib.SMTP('smtp.gmail.com', 587) smtpObj.starttls() smtpObj.login(my_sender, my_password) smtpObj.sendmail(my_sender, to_list, msg.as_string()) smtpObj.quit() print("郵件發送成功") except Exception as ex: print(ex) print("郵件發送失敗")
上面的代碼中,我們使用了email.mime.text和email.utils模塊,其中MIMEText用於設置郵件內容,formataddr用於設置發件人姓名。這裡注意使用starttls()進行安全連接。
五、總結
Python SMTP模塊提供了連接SMTP服務器、登錄SMTP服務器、發送郵件等功能,可以輕鬆地實現郵件發送。我們可以使用Python腳本向多個收件人發送HTML郵件,以提高工作效率。在實際應用中,還需要注意SMTP服務器、端口號、郵箱地址和授權碼等相關信息的設置。
原創文章,作者:PHWT,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/137599.html