使用python下载电子邮件附件时出错

时间:2018-07-15 01:03:11

标签: python imap

我得到的错误是:

  
      
  • IOError:[Errno 2]没有这样的文件或目录:'Users / nithinpathak / Documents / Automate / attachments / Payment Advice Note from 06/28 / 2018.PDF'。我知道该错误是因为python无法检测到文件。但不确定代码的哪一部分是错误的
  •   

我正在使用以下代码下载附件

import imaplib, email, os

map_url = 'imap.gmail.com'
attachment_dir='Users/nithinpathak/Documents/Automate'
con = imaplib.IMAP4_SSL(imap_url)
con.login(user, password)
con.select('INBOX')

result, data = con.fetch(b'11', '(RFC822)')
raw = email.message_from_string(data[0][1])
get_attachments(raw)

def get_attachments(msg):
  for part in msg.walk():
    if part.get_content_maintype()=='multipart':
        continue
    if part.get('Content-Disposition') is None:
        continue
    fileName = part.get_filename()

    if bool(fileName):
        filePath = os.path.join(attachment_dir, 'attachments', fileName)
        if not os.path.isfile(filePath):
            print fileName
            fp = open(filePath, 'wb')
            fp.wirte(part.get_payload(decode=True))
            fp.close()

1 个答案:

答案 0 :(得分:0)

在Python中,即使路径名中的斜杠始终被解释为目录定界符,即使在Windows中也是如此,后者使用反斜杠作为目录定界符。因此,文件名Payment Advice Note from 06/28/2018.PDF被解释为Payment Advice Note from 06/28子目录下的文件2018.PDF。您应该简单地将其重命名为没有斜杠的内容。