新聞中心
本篇內(nèi)容主要講解“python怎么實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“python怎么實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件”吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、祁陽網(wǎng)站維護(hù)、網(wǎng)站推廣。
主要會遇到的幾個問題:
1、smtplib。smtpauthenticationerror :(550,b“用戶沒有權(quán)限”)
2、smtplib。smtpauthenticationerror :(535,b'Error:驗證失敗')
這兩個錯誤都是你的密碼沒有使用授權(quán)碼導(dǎo)致的,授權(quán)碼是百度生成的。
3、554 DT:SPM 163 smtp5
這是網(wǎng)易郵箱的一個退貨檢測機(jī)制造成的,好像和頻繁發(fā)送有關(guān)。再發(fā)的時候遇到了,直到加了一個網(wǎng)易郵箱作為收件箱才發(fā)成功。不知道是不是這個原因,具體原因不明。如果有人知道,請在私信或評論下告訴我。謝謝!
準(zhǔn)備檢查系統(tǒng)上的python版本號:
如圖,已經(jīng)安裝好了。
2.實現(xiàn)代碼如下(這是在Windows上編輯IDEL下的測試代碼,只改變linux上的附件路徑)
#-*-coding:utf-8-*-
fromemailimportencoders
importos
importtraceback
fromemail.headerimportHeader
from email . mime . textimport mime text
fromemail.utilsimportparseaddr,formataddr
importsmtplib
from email . mime . MultipimportMimePart
from email . mime . BaseIMPORTMimeBase
fromemailimportencoders
#中文處理
def _ format _ addr :
名稱,addr=parseaddr(s)
returnformataddr((標(biāo)頭(名稱,' utf-8 ')。encode(),addr))
defsend_email(to_addr_in,filepath_in):
#郵件發(fā)送者和接收者配置
from_addr='*******@163.com '
smtp_server='smtp.163.com '
密碼=' * * * * * * * * ' #這是您郵箱的第三方授權(quán)客戶端的密碼,不是您的登錄密碼
to_addr=to_addr_in
to_addrs=to_addr.split(',')
msg=MIMEMultipart()
發(fā)件人由消息['from']=_ format _ addr ('python發(fā)燒友%s'%from_addr)#
#msg['To']=_format_addr('管理員%s'%to_addr)#單個顯示的收件人
消息['收件人']=','。join(to_addrs)#多個顯示的收件人
消息['主題']=標(biāo)題('來自SMTP的問候.',' utf-8 ')。encode () #顯示消息頭
#要傳遞的路徑
#filepath=r'D:\test '
filepath=filepath_in
r=os.path.exists(filepath)
ifrisFalse:
msg.attach(MIMEText('nofile .)、“普通”、“utf-8”))
else:
#消息正文是MIMEText:
msg . attach(MiMeText(' sendwithfile .)、“普通”、“utf-8”))
#遍歷指定的目錄并顯示該目錄下的所有文件名
pathDir=os.listdir(filepath)
forallDirinpathDir:
child=os.path.join(filepath,allDir)
Printchild。解碼(' gbk') #。decode ('gbk ')是為了解決中文顯示亂碼的問題
#添加附件就是添加一個MIMEBase并在本地讀取一個文件
withopen(child,' rb')asf:
#設(shè)置附件的MIME和文件名,這里是txt類型:
mime=MIMEBase('file ',' xls ',filename=allDir)
#添加必要的標(biāo)題信息:
mime . add _ header(' Content-Disposition ',' attachment ',filename=allDir)
添加標(biāo)題('內(nèi)容標(biāo)識',' 0 ')
mime . add _ header(' X-附件-Id ',' 0 ')
#閱讀:中附件的內(nèi)容
mime.set_payload(f.read())
#用Base64編碼:
encoders.encode_base64(mime)
#添加到MIMEMultipart:
msg.attach(mime)
try:
server=smtplib。SMTP(smtp_server,25)
#server.starttls()
server . set _ debugle level(1)#用于顯示郵件發(fā)送的執(zhí)行步驟
server.login(from_addr,password)
#printto_addrs
server.sendmail(from_addr,to _ addrs,msg.as_string())
server.quit()
Exception,e:
打印“錯誤:無法發(fā)送電子郵件”
printtraceback.format _ exc()
if__name__=='__main__':
send _ email(* * * * * * * @ qq.com,* * * * * * @ 163.com ',' d: \ \ test') 3。PyCharm中的執(zhí)行結(jié)果如下
顯示郵件已發(fā)送成功,可在對應(yīng)郵箱查看,對應(yīng)文件夾下有附件文字
如果沒有附件文字(這是截圖的網(wǎng)易郵箱,上面的QQ郵箱表示兩個郵箱都收到了郵件):
到此,相信大家對“python怎么實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
新聞名稱:python怎么實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件
鏈接地址:http://www.dlmjj.cn/article/jgjhpp.html