复制电子邮件中的附件。
To copy the attached file in an email.
我已经知道如何获取电子邮件中附件的名称了。在那之后我就被困住了。我不知道之后该怎么做,我尝试使用 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)
按照此 link 中的示例,您可以在使用打开功能时设置路径。 (在字符串前加上 r 的原始字符串)
fp = open(r'c:\tmp\folder\' + filename, 'wb')
fp.write(part.get_payload(decode=True))
fp.close()
print '%s saved!' % filename
我已经知道如何获取电子邮件中附件的名称了。在那之后我就被困住了。我不知道之后该怎么做,我尝试使用 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)
按照此 link 中的示例,您可以在使用打开功能时设置路径。 (在字符串前加上 r 的原始字符串)
fp = open(r'c:\tmp\folder\' + filename, 'wb')
fp.write(part.get_payload(decode=True))
fp.close()
print '%s saved!' % filename