在疫情期間,疫情防控、銷售推廣等方面郵件變得越來越重要,如何實現快速地發送郵件是我們需要面對的問題。Python中的smtplib庫提供了實現SMTP郵件發送的方法,不僅發送郵件快速,而且也可以實現郵件的自動發送。在本文中,將詳細介紹如何使用Python發送郵件,主要包括以下方面介紹:
一、準備工作
在使用Python發送郵件前,需要先準備好以下工作:
1、獲取郵箱SMTP服務器地址和端口號。不同的郵箱提供商服務器和端口號不一樣,可參考以下對應表:
郵箱提供商 | SMTP服務器地址 | 端口號 |
---|---|---|
QQ郵箱 | smtp.qq.com | 587 |
163郵箱 | smtp.163.com | 25 |
126郵箱 | smtp.126.com | 25 |
新浪郵箱 | smtp.sina.com | 25 |
2、確保郵箱已經開啟SMTP服務和POP3/IMAP服務,開啟方法可在對應郵箱設置中找到。
3、獲取發件人郵箱地址和密碼以及收件人郵箱地址。
準備工作完成後,就可以開始使用Python發送郵件了。
二、Python SMTP郵件發送
1、首先需要導入smtplib庫和MIMEText庫。
import smtplib from email.mime.text import MIMEText
2、定義郵件內容並創建MIMEText對象。
sender = '發件人郵箱地址' password = '發件人郵箱密碼' receiver = '收件人郵箱地址' message = MIMEText('郵件內容', 'plain', 'utf-8') message['From'] = sender message['To'] = receiver message['Subject'] = '郵件主題'
3、定義SMTP服務器地址和端口號,並登錄SMTP服務器。
smtp_server = 'SMTP服務器地址' smtp_port = 'SMTP端口號' server = smtplib.SMTP(smtp_server, smtp_port) server.login(sender, password)
4、發送郵件。
server.sendmail(sender, [receiver], message.as_string()) server.quit()
5、完整的Python SMTP郵件發送代碼如下:
import smtplib from email.mime.text import MIMEText sender = '發件人郵箱地址' password = '發件人郵箱密碼' receiver = '收件人郵箱地址' message = MIMEText('郵件內容', 'plain', 'utf-8') message['From'] = sender message['To'] = receiver message['Subject'] = '郵件主題' smtp_server = 'SMTP服務器地址' smtp_port = 'SMTP端口號' server = smtplib.SMTP(smtp_server, smtp_port) server.login(sender, password) server.sendmail(sender, [receiver], message.as_string()) server.quit()
三、實現批量發送郵件
以上介紹了如何實現單封郵件的發送,實際應用中我們更多需要批量發送郵件。下面介紹如何實現批量發送郵件:
1、假設我們需要給多個收件人發送郵件,並且每個收件人郵件內容不同。首先定義收件人和郵件內容。
receivers = ['收件人1郵箱地址', '收件人2郵箱地址', '收件人3郵箱地址'] messages = [ {'Subject': '郵件1主題', 'Content': '郵件1內容'}, {'Subject': '郵件2主題', 'Content': '郵件2內容'}, {'Subject': '郵件3主題', 'Content': '郵件3內容'} ]
2、使用for循環批量發送郵件。
for receiver, message in zip(receivers, messages): message = MIMEText(message['Content'], 'plain', 'utf-8') message['From'] = sender message['To'] = receiver message['Subject'] = message['Subject'] server.sendmail(sender, [receiver], message.as_string())
3、完整的Python批量發送郵件代碼如下:
import smtplib from email.mime.text import MIMEText sender = '發件人郵箱地址' password = '發件人郵箱密碼' receivers = ['收件人1郵箱地址', '收件人2郵箱地址', '收件人3郵箱地址'] messages = [ {'Subject': '郵件1主題', 'Content': '郵件1內容'}, {'Subject': '郵件2主題', 'Content': '郵件2內容'}, {'Subject': '郵件3主題', 'Content': '郵件3內容'} ] smtp_server = 'SMTP服務器地址' smtp_port = 'SMTP端口號' server = smtplib.SMTP(smtp_server, smtp_port) server.login(sender, password) for receiver, message in zip(receivers, messages): message = MIMEText(message['Content'], 'plain', 'utf-8') message['From'] = sender message['To'] = receiver message['Subject'] = message['Subject'] server.sendmail(sender, [receiver], message.as_string()) server.quit()
四、總結
本文主要介紹了使用Python發送SMTP郵件的過程,包括準備工作、Python SMTP郵件發送、實現批量發送郵件等方面。通過本文的學習,大家可以掌握如何使用Python發送郵件以及如何實現批量發送郵件。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/307489.html