日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

利用Python自动发送电子邮件

發(fā)布時(shí)間:2023/12/19 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用Python自动发送电子邮件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

總第129篇/張俊紅

收發(fā)郵件幾乎是每個(gè)人每天都需要做的一件事情,對于一些固定每天需要發(fā)送的郵件或者是同時(shí)需要發(fā)送好幾十好幾百份的時(shí)候,我們可以考慮借助Python來自動(dòng)發(fā)送郵件。

在利用Python進(jìn)行發(fā)送郵件時(shí)主要借助smtplib和email兩個(gè)模塊,其中smtplib主要用來建立服務(wù)器鏈接、服務(wù)器斷開的工作,而email模塊主要用來設(shè)置一些與郵件本身相關(guān)的內(nèi)容,比如收件人、發(fā)件人、主題之類的。

不同郵箱的服務(wù)器鏈接地址(官方名叫端口)不一樣,大家根據(jù)自己使用的郵箱設(shè)置相應(yīng)的服務(wù)器鏈接。如果是outlook企業(yè)郵箱的話,一般都是mail.xxx.com(xxx是你公司名字),具體的可以問公司的運(yùn)維同事。

這里我們拿公共郵箱來舉例,163郵箱還是相對比較常用的,所以這里就以163郵箱為例,給大家演示一下具體如何利用Python進(jìn)行自動(dòng)發(fā)送郵件。

在開始進(jìn)行正式代碼之前,需要先登陸自己的163郵箱進(jìn)行授權(quán)設(shè)置,授權(quán)碼設(shè)置如下:

點(diǎn)擊設(shè)置中的POP3/SMTP/IMAP,勾選SMTP服務(wù),根據(jù)提是進(jìn)行授權(quán)碼設(shè)置,設(shè)置授權(quán)成功后,在Python中利用授權(quán)碼進(jìn)行登陸,而不是你本來的郵箱密碼,如果使用本來的郵箱密碼登陸,會(huì)報(bào)錯(cuò)。

>>>import?smtplib >>>from?email?import?encoders >>>from?email.header?import?Header >>>from?email.mime.text?import?MIMEText >>>from?email.utils?import?parseaddr,?formataddr >>>from?email.mime.application?import?MIMEApplication#發(fā)件人郵箱 >>>asender="zhangjunhongdata@163.com" #收件人郵箱 >>>areceiver="zhangjunhong@163.com" #抄送人郵箱 >>>acc?=?'zhangjunhong@qq.com' #郵件主題 >>>asubject?=?'這是一份測試郵件'??#發(fā)件人地址 >>>from_addr?=?"zhangjunhongdata@163.com" #郵箱密碼(授權(quán)碼) >>>password="123data"#郵件設(shè)置 >>>msg?=?MIMEMultipart() >>>msg['Subject']?=?asubject?? >>>msg['to']?=?areceiver?? >>>msg['Cc']?=?acc? >>>msg['from']?=??"張俊紅"#郵件正文內(nèi)容 >>>body?=?"你好,這是一份測試郵件"#添加郵件正文: >>>msg.attach(MIMEText(body,?'plain',?'utf-8'))#添加附件 #注意這里的文件路徑是斜杠 >>>xlsxpart?=?MIMEApplication(open('C:/Users/zhangjunhong/Desktop/這是附件.xlsx',?'rb').read()) >>>xlsxpart.add_header('Content-Disposition',?'attachment',?filename='這是附件.xlsx') >>>msg.attach(xlsxpart)????#設(shè)置郵箱服務(wù)器地址以及端口 >>>smtp_server?="smtp.163.com" >>>server?=?smtplib.SMTP(smtp_server,?25) >>>server.set_debuglevel(1) #登陸郵箱 >>>server.login(from_addr,?password) #發(fā)送郵件 >>>server.sendmail(from_addr,?>>>areceiver.split(',')+acc.split(','),?msg.as_string()) #斷開服務(wù)器鏈接 server.quit()

最后的結(jié)果如下圖:

如果是需要同時(shí)發(fā)送多份郵件,可以把上述郵件發(fā)送過程定義成一個(gè)函數(shù),把收件人以及其他內(nèi)容生成一個(gè)列表,然后遍歷每一個(gè)收件人,最后調(diào)用發(fā)送郵件函數(shù)進(jìn)行多份郵件發(fā)送。

把郵件發(fā)送過程封裝成一個(gè)函數(shù)相對比較簡單,只需要把上述給單個(gè)人發(fā)送郵件的內(nèi)容當(dāng)成語句塊,收件人當(dāng)作參數(shù)即可,下面我們定義了一個(gè)名為send_mail的函數(shù):

def?send_mail(areceiver):給單人發(fā)送郵件的代碼

遍歷發(fā)送每一個(gè)郵件實(shí)現(xiàn)如下:

#多個(gè)收件人列表 receivers?=?["zhangjunhongdata1@163.com1","zhangjunhongdata2@163.com1","zhangjunhongdata3@163.com1"] #開始遍歷 for?r?in?receivers:send_mail(r)

關(guān)于自動(dòng)發(fā)送郵件還有很多內(nèi)容,比如定時(shí)發(fā)送,正文添加圖片,附件添加圖片,編寫圖形化界面,也就是自己寫一個(gè)類似于outlook一樣的郵件客戶端都是可以的,本篇文章只是幫助大家打開自動(dòng)發(fā)送郵件的大門,里面還有很多精彩的內(nèi)容,大家有興趣的可以自行上網(wǎng)搜索學(xué)習(xí)。

總結(jié)

以上是生活随笔為你收集整理的利用Python自动发送电子邮件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。