国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python發送以整個文件夾的內容為附件的郵件的教程

2019-11-25 17:32:07
字體:
來源:轉載
供稿:網友

由于我經常需要備份文件夾下的內容到郵件里面,每個打開郵件,上傳文件,發送,太過麻煩,其實每次發送的文件都是放在固定 置的,只是郵件標題不同而已,于是用 python 為自己寫了個發送文件到郵箱的小工具,在任意目錄下執行該腳本,并指定郵件標 ,就將指定文件夾下的文件發送到郵箱中備份起來 。

#!/usr/bin/env python# coding: utf-8from smtplib import SMTP, quotedata, CRLF, SMTPDataErrorfrom email.MIMEMultipart import MIMEMultipartfrom email.MIMEBase import MIMEBasefrom email.MIMEText import MIMETextfrom email import Encodersfrom sys import stderr, stdoutimport osimport sysclass ExtendedSMTP(SMTP):  def data(self, msg):    self.putcmd("data")    (code,repl)=self.getreply()    if self.debuglevel > 0 : print >> stderr, "data:", (code, repl)    if code != 354:      raise SMTPDataError(code,repl)    else:      q = quotedata(msg)      if q[-2:] != CRLF:        q = q + CRLF      q = q + "." + CRLF      # begin modified send code      chunk_size = 2048      bytes_sent = 0      while bytes_sent != len(q):        chunk = q[bytes_sent:bytes_sent+chunk_size]        self.send(chunk)        bytes_sent += len(chunk)        if hasattr(self, "callback"):          self.callback(bytes_sent, len(q))      # end modified send code      (code,msg)=self.getreply()      if self.debuglevel >0 : print>>stderr, "data:", (code,msg)      return (code,msg)def callback(progress, total):  percent = 100. * progress / total  stdout.write('/r')  stdout.write("%s bytes sent of %s [%2.0f%%]" % (progress, total, percent))  stdout.flush()  if percent >= 100: stdout.write('/n')def sendmail(subject):  MAIL_FROM = 'mymail@qq.com'  MAIL_TO = ['mymail@qq.com']  BAK_DIR = '/path/to/bak/folder'  msg = MIMEMultipart()  msg['From'] = MAIL_FROM  msg['Subject'] = subject  msg.attach( MIMEText('test send attachment') )  for filename in os.listdir(BAK_DIR):    part = MIMEBase('application', "octet-stream")    part.set_payload(open(os.path.join(BAK_DIR, filename),"rb").read() )    Encoders.encode_base64(part)    part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(filename))    msg.attach(part)  try:    smtp = ExtendedSMTP()    smtp.callback = callback    smtp.connect('smtp.qq.com', 25)    smtp.login('mymail', 'mypwd')    smtp.sendmail(MAIL_FROM, MAIL_TO, msg.as_string())    smtp.close()    os.system('rm -f %s/*' % BAK_DIR)  except Exception, e:    print eif __name__ == '__main__':  if len(sys.argv) == 1:    print 'Please specific a subject'    print 'Usage: send_files <MAIL_SUBJECT>'  else:    sendmail(sys.argv[1])

安裝:

配置好收件人,發件人,smtp地址,用戶名,密碼及要發送文件所在的路徑。

將文件保存為 send_files,保存到 /usr/bin 下面。

然后設置文件權限為可執行:

$ chmod +x send_files

用法:

$ send_files '郵件標題'

還帶有進度條哦~~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 斗六市| 永川市| 鄂尔多斯市| 施甸县| 祁门县| 聂荣县| 万源市| 黔西县| 昭觉县| 伽师县| 博爱县| 乐昌市| 襄汾县| 雅安市| 连江县| 宜昌市| 会昌县| 乳山市| 兴和县| 精河县| 鄂尔多斯市| 龙陵县| 华亭县| 聂拉木县| 富民县| 神池县| 南靖县| 化隆| 客服| 河津市| 舒城县| 河间市| 太仆寺旗| 浑源县| 和静县| 彭州市| 无锡市| 苍溪县| 东方市| 晋城| 固原市|