2017-05-10 110 views
0

我已經能夠弄清楚如何在電子郵件中獲取附件的名稱。之後我就被卡住了。我不知道該做什麼後,我已經嘗試使用os.path.join,它只是給我想下載文件夾的路徑,並與文件名連接。請提出建議。謝謝。在電子郵件中複製附件。

m = imaplib.IMAP4_SSL('outlook.office365.com',993) 
m.login("UN", "PW") 
m.select("Inbox") 

typ, msgs = mail.search(None, '(SUBJECT "qwerty")') 
msgs = msgs[0].split() 

for emailid in msgs: 
    resp, data = mail.fetch(emailid, "(RFC822)") 


    email_body = data[0][1] 
    m = email.message_from_bytes(email_body) 

    if m.get_content_maintype() != 'multipart': 
     continue 

    for part in m.walk(): 
     if part.get_content_maintype() == 'multipart': 
      continue 
     if part.get('Content-Disposition') is None: 
      continue 

     filename = part.get_filename() 
     print(filename) 
+0

採取在這個問題上的樣子: [GET-的Gmail郵箱,附件文件名,而無需的下載,它(http://stackoverflow.com/問題/ 13663672/get-the-gmail-attachment-filename-without-downloading-it) –

+1

@MiguelFebres沒問題,所以它將文件獲取到python文件所在的文件夾。你能告訴我如何將文件傳送到特定的文件夾。如果你可以發表你的答案作爲答案,我可以接受它作爲正確的答案。 你是男人! :D非常感謝! – qwerty

回答

0

繼此link的示例後,可以設置使用打開函數時的路徑。 (由前綴有R字符串原始字符串)

fp = open(r'c:\tmp\folder\' + filename, 'wb') 
fp.write(part.get_payload(decode=True)) 
fp.close() 
print '%s saved!' % filename