Python+smtplib庫實現(xiàn)郵件發(fā)送功能
更新時間:2025年02月08日 16:13:24 作者:覓遠(yuǎn)
這篇文章主要為大家詳細(xì)介紹了Python如何通過smtplib庫實現(xiàn)簡單的郵件發(fā)送功能,文中的示例代碼借鑒一下,有需要的小伙伴可以參考一下
準(zhǔn)備條件
qq郵箱需要注冊用戶授權(quán)碼,開啟SMTP服務(wù):
代碼
import smtplib from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage def send_mail(sender, send_password, addressee, host='smtp.qq.com', port=465, code=1): ''' # Python使用純文本或html發(fā)送電子郵件, 但不能同時使用兩者(郵件正文,不能多次構(gòu)造) :param sender: 發(fā)件人郵箱 :param send_password: 發(fā)件人郵箱密碼,qq郵箱為授權(quán)碼 :param addressee:收件人郵箱,多個人就是要list :param host:郵箱服務(wù)地址,發(fā)件人郵箱中的SMTP服務(wù)器,QQ郵箱服務(wù)器smtp.qq.com,136郵箱服務(wù)器smtp.136.com :param port:郵箱服務(wù)地址端口,默認(rèn)25,一般配置465不會錯 :param code:選擇發(fā)送郵件的方式sendmail或send_message :return: ''' # 1、純文本內(nèi)容 plain_message = MIMEText('郵件正文內(nèi)容:\n\t測試發(fā)送郵件的內(nèi)容', 'plain', 'utf-8') # 2、發(fā)送HTML格式的郵件,可支持添加圖片,表格在正文中直接顯示 mail_message = ''' <p>測試郵件</p> <p><a >點擊跳轉(zhuǎn)百度</a></p> <p><img src="cid:image"></p> ''' # 郵件附件 file1_path = r'D:\zhuomian\test_file\學(xué)習(xí)培訓(xùn)導(dǎo)入.xlsx' attachment = MIMEText(open(file1_path, 'rb').read(), 'base64', 'utf-8') attachment.add_header('Content-Disposition', 'attachment', filename=('utf-8', '', '測試學(xué)習(xí).xlsx')) # 發(fā)送圖片,和HTML格式配合使用 with open(r'D:\zhuomian\test_file\ddj50.png', 'rb') as img_file: # 讀取圖片 msgImage = MIMEImage(img_file.read()) # 構(gòu)建郵件 message = MIMEMultipart() # 構(gòu)建主體 # message.attach(plain_message) # 添加純文本內(nèi)容,與HTML二選一使用 message.attach(MIMEText(mail_message, 'html', 'utf-8')) # 添加html內(nèi)容,與純文本二選一使用 message.attach(attachment) # 添加附件 msgImage.add_header('Content-ID', '<image>') # 定義圖片ID,在HTML文本中引用 message.attach(msgImage) # 添加圖片 # 發(fā)送郵件 try: if code == 1: # sendmail方法發(fā)送郵件 message['Subject'] = Header('這是郵件主題測試:測試一下', 'utf-8') # 發(fā)送郵件主題 message['From'] = Header('寶瑞', 'utf-8') # 設(shè)置發(fā)件人昵稱 message['To'] = Header('大寶貝', 'utf-8') # 設(shè)置收件人昵稱 server = smtplib.SMTP_SSL(host, port) # (連接郵箱的SMTP服務(wù)器,參數(shù)為服務(wù)器地址和端口) server.login(sender, password=send_password) # 登錄郵箱,參數(shù)為發(fā)件人郵箱賬號、郵箱授權(quán)碼 server.sendmail(sender, addressee, message.as_string()) # 括號中對應(yīng)的是發(fā)件人郵箱賬號、收件人郵箱賬號、發(fā)送郵件 else: # 使用send_message發(fā)送 message['Subject'] = '測試郵件:測試一下' # 發(fā)送郵件主題 message['From'] = sender # 發(fā)件人 # message['To'] = addressee # 收件人,單個收件人 message["To"] = ";".join(addressee) # 收件人,同時發(fā)送多個用戶,多人接受用message["To"] = ";".join(收件人列表) server = smtplib.SMTP_SSL(host, port) # (連接郵箱的SMTP服務(wù)器,參數(shù)為服務(wù)器地址和端口) server.login(sender, password=send_password) server.send_message(message) # 括號中的參數(shù)為郵件構(gòu)造體 server.quit() # 關(guān)閉連接 print('郵件發(fā)送成功!') except: print('郵件發(fā)送成功!')
到此這篇關(guān)于Python+smtplib庫實現(xiàn)郵件發(fā)送功能的文章就介紹到這了,更多相關(guān)Python smtplib郵件發(fā)送內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python爬蟲搭配起B(yǎng)ilibili唧唧的流程分析
這篇文章主要介紹了python爬蟲搭配起B(yǎng)ilibili唧唧的流程分析,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12TensorFlow和keras中GPU使用的設(shè)置操作
這篇文章主要介紹了TensorFlow和keras中GPU使用的設(shè)置操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05學(xué)會用Python實現(xiàn)滑雪小游戲,再也不用去北海道啦
Python除了極少的事情不能做之外,其他基本上可以說全能.,圖形處理、文本處理、數(shù)據(jù)庫編程、網(wǎng)絡(luò)編程、web編程、黑客編程、爬蟲編寫、機(jī)器學(xué)習(xí)、人工智能等.接下來我就教大家做一個不用去北海道也可以滑雪的小游戲,需要的朋友可以參考下2021-05-05