最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件的示例

 更新時間:2018年01月23日 14:23:24   作者:robot_sql  
下面小編就為大家分享一篇python實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1、最近公司實現(xiàn)部分數(shù)據(jù)統(tǒng)計、分析的報表進行每天定時發(fā)送到相關人員的郵箱之中的配置代碼被人為刪除了,需要重新恢復該功能,由于原先是在linux上使用shell配置發(fā)送,實在是太繁瑣,所以準備使用python來實現(xiàn)該功能,不過發(fā)現(xiàn)網(wǎng)上各種文檔都是未經(jīng)過整理,代碼寫的很不友善,比如發(fā)送多人的只能發(fā)送前一個郵箱,附件寫死不靈活等等,故特寫一遍比較記錄。

主要會遇到的幾個問題:

      1、smtplib.SMTPAuthenticationError: (550, b'User has no permission')

      2、smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')

             這兩個錯誤是你的密碼用的不是授權碼導致,授權碼生成自行百度。

      3、554 DT:SPM 163 smtp5

這屬于網(wǎng)易郵箱的一個退回檢測機制導致,貌似跟發(fā)送比較頻繁有關,我再發(fā)送的時候有遇到過,直到添加了一個網(wǎng)易郵箱作為收件箱之后才能發(fā)送成功,不知道是不是這個原因?qū)е?,具體原因未知,如果有人知道請在私信或者評論下告知,謝謝?。?/p>

前期準備查看系統(tǒng)上python版本號:

顯示如圖表示已經(jīng)安裝好了。

2、實現(xiàn)代碼如下(這是在Windows上的IDEL下編輯測試代碼,linux上只有改下附件路徑就好了)

# -*- coding: utf-8 -*-
from email import encoders
import os
import traceback
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

# 中文處理
def _format_addr(s):
 name, addr = parseaddr(s)
 return formataddr((Header(name, 'utf-8').encode(), addr))
def send_email(to_addr_in,filepath_in):
 # 郵件發(fā)送和接收人配置
 from_addr = '*******@163.com'
 smtp_server = 'smtp.163.com'
 password = '********' #這是你郵箱的第三方授權客戶端密碼,并非你的登錄密碼
 to_addr = to_addr_in
 to_addrs = to_addr.split(',')
 msg = MIMEMultipart()
 msg['From'] = _format_addr('Python愛好者 <%s>' % from_addr)  # 顯示的發(fā)件人
 # msg['To'] = _format_addr('管理員 <%s>' % to_addr)    # 單個顯示的收件人
 msg['To'] = ",".join(to_addrs)         # 多個顯示的收件人
 msg['Subject'] = Header('來自SMTP的問候……', 'utf-8').encode()  # 顯示的郵件標題
 # 需要傳入的路徑
 # filepath = r'D:\test'
 filepath = filepath_in
 r = os.path.exists(filepath)
 if r is False:
  msg.attach(MIMEText('no file...', 'plain', 'utf-8'))
 else:
  # 郵件正文是MIMEText:
  msg.attach(MIMEText('send with file...', 'plain', 'utf-8'))
  # 遍歷指定目錄,顯示目錄下的所有文件名
  pathDir = os.listdir(filepath)
  for allDir in pathDir:
   child = os.path.join(filepath, allDir)
   print child.decode('gbk') # .decode('gbk')是解決中文顯示亂碼問題
   # 添加附件就是加上一個MIMEBase,從本地讀取一個文件
   with open(child, 'rb') as f:
    # 設置附件的MIME和文件名,這里是txt類型:
    mime = MIMEBase('file', 'xls', filename=allDir)
    # 加上必要的頭信息:
    mime.add_header('Content-Disposition', 'attachment', filename=allDir)
    mime.add_header('Content-ID', '<0>')
    mime.add_header('X-Attachment-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_debuglevel(1) # 用于顯示郵件發(fā)送的執(zhí)行步驟
  server.login(from_addr, password)
  # print to_addrs
  server.sendmail(from_addr, to_addrs, msg.as_string())
  server.quit()
 except Exception, e:
  print "Error: unable to send email"
  print traceback.format_exc()
if __name__ == '__main__':
 send_email('*******@qq.com,*******@163.com','D:\\test')

3、在 PyCharm 里面執(zhí)行結(jié)果如下

顯示郵件已經(jīng)發(fā)送成功了,可在相應的郵箱里面查看,相應的文件夾下存在附件文本

如果不存在附件文本(這是截圖的網(wǎng)易郵箱,上面截圖的是QQ郵箱表示兩個郵箱都已經(jīng)收到郵件):

以上這篇python實現(xiàn)自動發(fā)送郵件發(fā)送多人、群發(fā)、多附件的示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

  • 如何用python抓取B站數(shù)據(jù)

    如何用python抓取B站數(shù)據(jù)

    今天介紹一個獲取B站數(shù)據(jù)的Python擴展庫-bilibili_api,對此感興趣的同學,可以實驗一下
    2021-05-05
  • Pygame游戲開發(fā)之太空射擊實戰(zhàn)碰撞改進篇

    Pygame游戲開發(fā)之太空射擊實戰(zhàn)碰撞改進篇

    相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動手實現(xiàn)它,在編寫學習中回顧過往展望未來,在本課中,我們將討論如何更改?Pygame?處理精靈之間沖突的方式
    2022-08-08
  • python錯誤處理詳解

    python錯誤處理詳解

    這篇文章主要介紹了python錯誤處理詳解,本文講解了try語句、錯誤堆棧、記錄錯誤、拋出錯誤等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • 深入了解Python二維直方圖

    深入了解Python二維直方圖

    只統(tǒng)計像素的灰度值這一特征,可將其成為一維直方圖。二維直方圖可以統(tǒng)計像素的色相和飽和度,用于查找圖像的顏色直方圖。本文將為大家介紹分別使用OpenCV和NumPy函數(shù)計算直方圖,需要的可以學習一下
    2021-12-12
  • python實現(xiàn)最大子序和(分治+動態(tài)規(guī)劃)

    python實現(xiàn)最大子序和(分治+動態(tài)規(guī)劃)

    這篇文章主要介紹了python實現(xiàn)最大子序和(分治+動態(tài)規(guī)劃),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 僅用50行Python代碼實現(xiàn)一個簡單的代理服務器

    僅用50行Python代碼實現(xiàn)一個簡單的代理服務器

    這篇文章主要介紹了僅用50行Python代碼實現(xiàn)一個簡單的代理服務器,利用最簡單的client->proxy->forward原理在socket模塊下編寫,需要的朋友可以參考下
    2015-04-04
  • python3.6環(huán)境安裝+pip環(huán)境配置教程圖文詳解

    python3.6環(huán)境安裝+pip環(huán)境配置教程圖文詳解

    這篇文章主要介紹了python3.6環(huán)境安裝+pip環(huán)境配置教程圖文詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Python深度學習pytorch實現(xiàn)圖像分類數(shù)據(jù)集

    Python深度學習pytorch實現(xiàn)圖像分類數(shù)據(jù)集

    這篇文章主要為大家講解了關于Python深度學習中pytorch實現(xiàn)圖像分類數(shù)據(jù)集的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • 最新評論

    江北区| 东乌珠穆沁旗| 延寿县| 垦利县| 潞西市| 桃园市| 乌兰浩特市| 扬中市| 都江堰市| 抚顺县| 云浮市| 南江县| 民权县| 修武县| 安义县| 庐江县| 九江市| 馆陶县| 海丰县| 长泰县| 和龙市| 辽宁省| 海宁市| 兴和县| 防城港市| 沐川县| 顺昌县| 佛坪县| 莱阳市| 文成县| 赤水市| 宝山区| 富民县| 阿瓦提县| 获嘉县| 尖扎县| 新邵县| 石棉县| 浦东新区| 尚志市| 乳山市|