国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

利用Python自動(dòng)發(fā)送郵件

leo108 / 2939人閱讀

摘要:自動(dòng)發(fā)送郵件我們把報(bào)表做出來(lái)以后一般都是需要發(fā)給別人查看,對(duì)于一些每天需要發(fā)的報(bào)表或者是需要一次發(fā)送多份的報(bào)表,這個(gè)時(shí)候可以考慮借助來(lái)自動(dòng)發(fā)送郵件。一份郵件的組成下圖是中發(fā)送一份郵件的界面,主要包含發(fā)件人收件人抄送人主題正文附件這幾部分。

自動(dòng)發(fā)送郵件

我們把報(bào)表做出來(lái)以后一般都是需要發(fā)給別人查看,對(duì)于一些每天需要發(fā)的報(bào)表或者是需要一次發(fā)送多份的報(bào)表,這個(gè)時(shí)候可以考慮借助Python來(lái)自動(dòng)發(fā)送郵件。

使用郵箱的第一步

一般我們?cè)谑褂肣Q郵箱、163郵箱、126郵箱等這些比較常用的郵箱時(shí),只需要輸入賬號(hào)和密碼就可以。但是在使用手機(jī)端的企業(yè)郵箱的時(shí)候,一般都需要配置一下,常規(guī)的配置界面如下所示:

就是除了在輸入賬號(hào)密碼以外,還需要輸入一個(gè)服務(wù)器鏈接地址,這個(gè)地址每個(gè)公司都會(huì)不太一樣。

一份郵件的組成

下圖是outlook中發(fā)送一份郵件的界面,主要包含發(fā)件人、收件人、抄送人、主題、正文、附件這幾部分。這也是一般郵件比較通用的組成部分。

如何發(fā)送郵件

在發(fā)送郵件之前首先需要與服務(wù)器進(jìn)行連接,在Python中主要利用smtplib模塊來(lái)建立服務(wù)器連接接、服務(wù)器斷開的工作。

不同郵箱的服務(wù)器鏈接地址不一樣,大家根據(jù)自己使用的郵箱設(shè)置相應(yīng)的服務(wù)器鏈接。下表為常見郵箱對(duì)應(yīng)的服務(wù)器鏈接:

郵箱服務(wù)器地址
新浪郵箱smtp.sina.com
搜狐郵箱smtp.sohu.com
126郵箱smtp.126.com
139郵箱smtp.139.com
163網(wǎng)易郵箱smtp.163.com

在與163郵箱服務(wù)器進(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)行登陸,而不是你本來(lái)的郵箱密碼,如果使用本來(lái)的郵箱密碼登陸,會(huì)報(bào)錯(cuò)。

連接設(shè)置好以后就可以使用賬戶密碼進(jìn)行登錄了,登錄成功以后就可以對(duì)郵件內(nèi)容進(jìn)行編輯,編輯完成以后就可以點(diǎn)擊發(fā)送了,發(fā)送完成后斷開服務(wù)器鏈接。

如下展示了發(fā)送一份郵件的簡(jiǎn)短流程代碼:

import smtplibsmtp = smtplib.SMTP()smtp.connect(host, port)  # 與服務(wù)器進(jìn)行連接smtp.set_debuglevel(1) #顯示出交互信息smtp.login(username, password)  # 登陸郵箱smtp.sendmail(sender, receiver, msg.as_string())  # 發(fā)送郵件smtp.quit()  # 斷開連接

正式發(fā)送一份郵件

如下以163郵箱為例,展示了發(fā)送一份郵件完整的Python代碼:

import smtplibfrom email.mime.multipart import MIMEMultipart from email import encodersfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.utils import parseaddr, formataddrfrom email.mime.application import MIMEApplication#發(fā)件人郵箱asender="zhangjunhongdata@163.com"#收件人郵箱areceiver="zhangjunhong@163.com"#抄送人郵箱acc = "zhangjunhong@qq.com"#郵件主題asubject = "這是一份測(cè)試郵件"  #發(fā)件人地址from_addr = "zhangjunhongdata@163.com"#郵箱密碼(授權(quán)碼)password="123data"#郵件設(shè)置msg = MIMEMultipart()msg["Subject"] = asubject  msg["to"] = areceiver  msg["Cc"] = acc msg["from"] =  "張俊紅"#郵件正文body = "你好,這是一份測(cè)試郵件"#添加郵件正文: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é)果如下圖:

關(guān)于自動(dòng)發(fā)送郵件還有一些進(jìn)階的內(nèi)容,比如定時(shí)發(fā)送,正文顯示html內(nèi)容等,大家有興趣的可以自行上網(wǎng)搜索學(xué)習(xí)。

批量發(fā)送郵件

如果是需要同時(shí)發(fā)送多份郵件,可以把收件人整理成一個(gè)表格進(jìn)行循環(huán)遍歷,挨個(gè)進(jìn)行發(fā)送。

比如我們現(xiàn)在需要給銷售部門好幾百銷售人員分別發(fā)送本月各自的銷售任務(wù),在發(fā)送郵件的時(shí)候主題需要命名成xxx任務(wù)明細(xì),在正文中的稱呼也需要改成對(duì)應(yīng)的收件人,附件中需要添加各自的任務(wù)明細(xì)表,而且需要抄送給各自的直屬上級(jí)。

根據(jù)上述的需要,我們整理了如下收件人信息相關(guān)的表格df:

姓名收件人抄送人
張俊紅1zhangjunhong11@163.comzhangjunhong@163.com
張俊紅2zhangjunhong22@163.comzhangjunhong@163.com

只需要寫一個(gè)for循環(huán)去遍歷這個(gè)df表格中的信息,然后就可以分別發(fā)送出去,具體實(shí)現(xiàn)代碼如下:

import smtplibfrom email.mime.multipart import MIMEMultipart from email.mime.text import MIMETextfrom email.mime.image import MIMEImagefrom email.mime.application import MIMEApplicationhost = "smtp.163.com"port = 25username = "zhangjunhong1227@163.com"password = "123zjh"smtp = smtplib.SMTP() #聲明一個(gè)鏈接對(duì)象smtp.connect(host, port)  # 與服務(wù)器進(jìn)行連接smtp.set_debuglevel(1) #顯示出交互信息smtp.login(username, password)  # 登陸郵箱sender = usernamefor i in zip(df["姓名"],df["收件人"],df["抄送人"]):        receiver = i[1] #收件人    acc = i[2] #抄送人    msg = MIMEMultipart() #聲明一個(gè)郵件對(duì)象    msg["from"] = username #發(fā)件人    msg["to"] = receiver#收件人    msg["Cc"] = acc #抄送人    msg["Subject"] = i[0] + "任務(wù)明細(xì)" #主題    # 編寫正文    text = MIMEText(i[0]+"您好,這是您這個(gè)月的任務(wù)明細(xì)","plain", "utf-8")     msg.attach(text)    # 添加表格附件    f = open("C:/Users/zhangjunhong/Desktop/任務(wù)明細(xì)/"+ i[0] + ".xlsx", "rb").read()    filepart = MIMEApplication(f)    filepart.add_header("Content-Disposition","attachment",filename=i[0] + "任務(wù)明細(xì).xlsx") #為附件添加一個(gè)標(biāo)題    msg.attach(filepart)    smtp.sendmail(sender, receiver.split(",") + acc.split(","), msg.as_string())  # 發(fā)送郵件smtp.quit()  # 斷開連接    

通過運(yùn)行上面的代碼,就可以達(dá)到一次性給表格df中的所有人發(fā)送郵件的需求。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/124104.html

相關(guān)文章

  • 我用Python寫了一個(gè)郵箱腳本發(fā)給班花,沒想到事情鬧大了...

    摘要:大家好,我是辣條。最先審核沒通過,說(shuō)我腳本涉嫌控制電腦違法違規(guī),經(jīng)過我再三的溝通之下,完整代碼刪除了,希望能通過審核。 大家好,我是辣條。? 前言 開學(xué)沒多久,事又多正愁缺寫博客的素材,這不馬上就來(lái)了,憨憨室友又要整活?,看在友(紅)情(包)的份上必須幫忙。 我起初的想法是通過郵箱發(fā)送表白...

    luckyyulin 評(píng)論0 收藏0
  • 自動(dòng)化測(cè)試】發(fā)送郵件 SMTP

    摘要:的提供了一種很方便的途徑發(fā)送電子郵件,它對(duì)協(xié)議進(jìn)行了簡(jiǎn)單的封裝。其中負(fù)責(zé)構(gòu)造郵件,則負(fù)責(zé)發(fā)送郵件。可能還不止一個(gè)發(fā)送郵件的主題。 如何使用Python將生成的測(cè)試報(bào)告以郵件附件的形式進(jìn)行發(fā)送呢? 一、概要 SMTP(Simple Mail Transfer Protocol)即簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來(lái)控制信件的中轉(zhuǎn)方式。 python的...

    chenatu 評(píng)論0 收藏0
  • 利用Scrapy實(shí)現(xiàn)公司內(nèi)部門戶消息郵件通知

    摘要:一項(xiàng)目背景我本人所在公司是一個(gè)國(guó)有企業(yè),自建有較大的內(nèi)部網(wǎng)絡(luò)門戶群,幾乎所有部門發(fā)布各類通知工作要求等消息都在門戶網(wǎng)站進(jìn)行。為了改變這種狀況,就想建立一個(gè)內(nèi)部網(wǎng)絡(luò)消息跟蹤通知系統(tǒng)。 一、項(xiàng)目背景   我本人所在公司是一個(gè)國(guó)有企業(yè),自建有較大的內(nèi)部網(wǎng)絡(luò)門戶群,幾乎所有部門發(fā)布各類通知、工作要求等消息都在門戶網(wǎng)站進(jìn)行。由于對(duì)應(yīng)的上級(jí)部門比較多,各類通知通告、領(lǐng)導(dǎo)講話等內(nèi)容類目繁多,要看一遍...

    tuantuan 評(píng)論0 收藏0
  • Python 發(fā)送郵件

    摘要:程序人員對(duì)于郵件自動(dòng)化的日常需求還是很高的。更是自帶一套模塊實(shí)現(xiàn)郵件發(fā)送。正是為了實(shí)現(xiàn)這個(gè)而生的,一句話就可以完成所有的登錄發(fā)送文字附件等功能。參考一句話發(fā)送郵件正常一點(diǎn)的發(fā)送郵件 程序人員對(duì)于郵件自動(dòng)化的日常需求還是很高的。但是入過了Linux的命令行郵件客戶端如Sendmail, Mutt, Alpine等坑之后,發(fā)現(xiàn)現(xiàn)代其實(shí)很少人真的在用它們實(shí)現(xiàn)郵件自動(dòng)化,根據(jù)搜索引擎里相關(guān)文章...

    tuomao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<