2016-03-09 74 views
0

我打算爲具有主題「製作」的郵件解析我的整個電子郵件收件箱,以便將電子郵件解壓縮爲.txt文件以供進一步解析。我已經成功地讓Python在我的收件箱中查找每封電子郵件,因爲我已經創建了顯示電子郵件數量和相關電子郵件(包含主題「生產」的電子郵件和電子郵件總數)的計數。我想知道如果通過Python,我可以在Outlook文件夾之間移動電子郵件,所以從收件箱到Outlook中名爲'production'的文件夾。我當前的代碼看起來像(在包含GUI成功地滿足了我的課程的要求):如何使用win32.client通過Python訪問各種Outlook文件夾

from tkinter import * 
import win32com.client 
import sys 
import os.path 
save_path = 'D:/Test1/' 
nGui=Tk() 
title=nGui.title('Production Accolation') 
geo=nGui.geometry 
def homepage(): 
    geo('250x150') 
    title 
    BtnSta=Button(text="Start", command=start,height=2,width=100,font = "Calibri 12 bold").pack() 
    BtnRep=Button(text="Report",command=report,height=2, width=100,font = "Calibri 12 bold").pack() 
    BtnExi=Button(text="Exit",fg="red",command=end, height=2,width=100,font = "Calibri 12 bold").pack() 
    nGui.mainloop() 
def start(): 
    outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
    inbox = outlook.GetDefaultFolder(6) 
    messages = inbox.Items 
    message = messages.GetLast() 
    subject=message.Subject 
    emailcount=0 
    corrcount=0 
    misccount=0 
    for m in messages: 
     emailcount=emailcount+1 
     if m.Subject=="production": 

      corrcount=corrcount+1 
      email="outlookparse" 
      compemail=os.path.join(save_path, email+".txt") 
      file1=open(compemail,"w") 
      file1.write(message.body) 
      file1.close() 
     else: 
      misccount=misccount+1 
    print("Total Emails ",emailcount) 
    print("Production Emails ",corrcount) 
    print("Miscellaneous Emails ",misccount) 
def report(): 
    print("ok") 
def end(): 
    exit() 
homepage() 

回答

2

在哪裏文件夾在什麼位置?如果是收件箱的子文件夾,使用inbox.Folders.Item("production").

+0

的確是這樣,這是我一直在尋找,由於該文件夾。但是,有沒有辦法將收件箱中的電子郵件完全移到該文件夾​​內? – ryan2405

+0

當然,調用MailItem.Move傳遞目標文件夾。 –

0

嘗試寫入文件在這個片段:file1.write(m.body)

相關問題