python自動化發(fā)送郵件實例講解
在python中,通過如下兩個模塊可以實現(xiàn)郵件的自動化操作
- smtplib
smtplib模塊是對SMTP協(xié)議的封裝,用于發(fā)送郵件;email模塊用于構(gòu)建郵件內(nèi)容,支持以下3種形式的郵件
- 純文本
- html
- 帶附件
首先來看下郵件的構(gòu)建,對于一封郵件,需要指定發(fā)件人,收件人,主題,正文等內(nèi)容,以最簡單的純文本郵件為例,構(gòu)建方式如下
>>> from email.mime.text import MIMEText >>> from email.header import Header >>> subject = '主題' >>> message = MIMEText('正文', 'plain', 'utf-8') >>> message['From'] = Header("發(fā)件人", 'utf-8') >>> message['To'] = Header("收件人", 'utf-8') >>> message['Subject'] = Header(subject, 'utf-8')
通過MIMEText方法來創(chuàng)建郵件,第一個參數(shù)為郵件的正文,第二個參數(shù)為郵件正文的形式,plain表示純文本,第三個參數(shù)指定編碼方式;然后通過From, To, Subject等屬性的設(shè)置來分別指定發(fā)件人,收件人和主題。
對于html形式的郵件,只需要指定MIMEText的第二個參數(shù)為html即可,用法如下
>>> msg = '<p>正文</p>' >>> message = MIMEText(msg, 'html', 'utf-8')
對于帶附件的郵件,需要通過MIMEMultipart來創(chuàng)建郵件,用法如下
>>> from email.mime.multipart import MIMEMultipart >>> message = MIMEMultipart() >>> message.attach(MIMEText('正文', 'plain', 'utf-8')) >>> attach = MIMEText(open('input.txt', 'rb').read(), 'base64', 'utf-8') >>> attach["Content-Type"] = 'application/octet-stream' >>> attach["Content-Disposition"] = 'attachment; filename="test.txt"' >>> message.attach(attach)
創(chuàng)建好郵件之后,就可以通過SMTP來發(fā)送了,這里以QQ郵箱為例,首先需要開啟QQ郵箱的SMTP服務(wù)器,然后生成授權(quán)碼,圖示如下
用QQ郵箱發(fā)送郵件的代碼如下
>>> import smtplib >>> from email.mime.text import MIMEText >>> from email.header import Header >>> message = MIMEText('正文', 'plain', 'utf-8') >>> message['From'] = Header("發(fā)件人", 'utf-8') >>> message['To'] = Header("收件人", 'utf-8') >>> message['Subject'] = Header('主題', 'utf-8') >>> server=smtplib.SMTP_SSL("smtp.qq.com", 465) >>> server.login('xxxxxxxx@qq.com', 'dvyybvbwpnnbbdaj') >>> server.sendmail('xxxxxxxx@qq.com', 'xxxxxxxx@qq.com' , message.as_string())
對于需要定期發(fā)送,且內(nèi)容較為固定的郵件,通過自動化可以大大減少工作量,比如通過python監(jiān)控磁盤空間,當使用率超過80%時,自動向運維人員發(fā)送郵件,以提醒備份和清理磁盤。
到此這篇關(guān)于python自動化發(fā)送郵件實例講解的文章就介紹到這了,更多相關(guān)使用python自動化發(fā)送郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python GUI庫圖形界面開發(fā)之PyQt5布局控件QHBoxLayout詳細使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5布局控件QHBoxLayout詳細使用方法與實例,需要的朋友可以參考下2020-03-03Python實現(xiàn)定時發(fā)送監(jiān)控郵件
這篇文章主要為大家講解如何用python連接郵箱,實現(xiàn)自動發(fā)送監(jiān)控郵件,文中的示例講解詳細,對我們了解Python有一定的幫助,需要的可以參考一下2022-01-01Python常用Web框架Django、Flask與Tornado介紹
這篇文章介紹了Python常用Web框架Django、Flask與Tornado,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05