coremail导出用户草稿箱中的邮件并打包
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了coremail导出用户草稿箱中的邮件并打包,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3902字,纯文字阅读大概需要6分钟。
内容图文
#!/usr/bin/python # -*- coding:utf-8 -*- import subprocess import datetime import re import os import tarfile import time # 邮件导出 目录结构说明 # /home/coremail/ExportUserDraftBoxEml # --> user@domain目录 # ------> eml格式的文件 exportEmlDir = '/home/coremail/ExportUserDraftBoxEml' nowDateTime = datetime.datetime.now().strftime("%Y%m%d") loggerFile = '/tmp/exportEmlForDraftBox.log.%s' % nowDateTime # 日志 def logger(context): with open(loggerFile, 'a+') as f: f.write(context + '\n') f.flush() print context # 压缩 生成list标志文件 上传压缩包 上传list文件 删除exportEmlDir目录 def compressFile(): compressfilename = 'MAIL_EML_RJZX_%s.tar.gz' % nowDateTime compressfilefullpath = '/home/coremail/%s'% compressfilename # print compressfilename # print compressfilefullpath logger('[-] compress file %s' % compressfilefullpath) with tarfile.open(compressfilefullpath, 'w:gz') as tar_f: tar_f.add(exportEmlDir) # 生成list标志文件 压缩包名字 和 文件大小 listFile = '/home/coremail/MAIL_EML_RJZX_%s.list' % nowDateTime with open(listFile, 'w') as f: f.write('%s: %sKB' % (compressfilename, os.stat(compressfilefullpath).st_size) + '\n') # 5秒后再删除文件 time.sleep(5) if os.path.isdir(exportEmlDir): logger('[-] delete directories file %s' % exportEmlDir) # shutil.rmtree(exportEmlDir) if os.path.isfile(compressfilefullpath): logger('[-] delete tar file %s' % compressfilefullpath) # os.remove(compressfilefullpath) print '[+] list file save to %s' % listFile # 列出用户草稿箱的邮件 def listUserDraftBoxMail(coremailuser): msgYesterdayDate = (datetime.datetime.now() + datetime.timedelta(days=-1)).strftime("%Y%m%d") list_msg = '/home/coremail/bin/userutil --list-msg %s \'fid=2&time=%s\'' % (coremailuser, msgYesterdayDate) logger(list_msg) mailListResult = subprocess.Popen(list_msg, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) for line in mailListResult.stdout.readlines(): # print line mid = re.search("1tb[a-zA-Z0-9\+\-\*\/]{19}", line) if mid: logger(line.strip()) exportUserDraftBoxMail(coremailuser.strip(), mid.group().strip()) # 导出用户草稿箱中的邮件 def exportUserDraftBoxMail(coremailuser, mid): userEmlDir = os.path.join(exportEmlDir, coremailuser) print userEmlDir if not os.path.isdir(userEmlDir): logger('[-] create %s directories' % userEmlDir) os.mkdir(userEmlDir) # 创建保存用户邮件的目录 # print coremailuser # print mid filterMid = re.sub('[\+\-\*\/]', '', mid) # print filterMid emlFileName = os.path.join(userEmlDir, filterMid) dump_msg = '/home/coremail/bin/userutil --dump-msg %s %s>%s.eml' % (coremailuser, mid, emlFileName) logger(dump_msg) os.system(dump_msg) # orgID = ['a', 'b', 'c'] # 根据组织id中的用户导出邮件 orgUnitId = ['100002345'] # 部门id if __name__ == '__main__': if not os.path.isdir(exportEmlDir): os.mkdir(exportEmlDir) # 创建邮件保存的目录 # listUserDraftBoxMail('admin@leejay.com.cn') # 查找组织ID中的用户传入方法 for orgline in orgUnitId: # 列出某个组织下面的所有用户 # select_user = '/home/coremail/bin/userutil --select-user @\'org_id="%s"\'' % orgline # 列出a组织下,某个部门的所有用户 select_user = '/home/coremail/bin/userutil --call-api "cmd=302&org_id=a&org_unit_id=%s&scope=2"|sed "s/Struct/\\n/g"|awk -F\'un=|,dn=|,dd=\' \'{print $2"@"$3}\'|grep -v "^@"' % orgline logger(select_user) userlistRelust = subprocess.Popen(select_user, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) for userline in userlistRelust.stdout.readlines(): # print userline.strip() listUserDraftBoxMail(userline.strip()) # 打包压缩 compressFile() print '[+] user mail save to %s' % exportEmlDir print '[+] log save to %s' % loggerFile
内容总结
以上是互联网集市为您收集整理的coremail导出用户草稿箱中的邮件并打包全部内容,希望文章能够帮你解决coremail导出用户草稿箱中的邮件并打包所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】