gpt4 book ai didi

python - 使用python从邮件下载附件

转载 作者:行者123 更新时间:2023-12-03 15:42:33 25 4
gpt4 key购买 nike

我有多封包含附件的电子邮件。我想下载未读电子邮件的附件,并带有特定主题行。

例如,我收到一封电子邮件,主题为“EXAMPLE”,并包含附件。那会怎么样
下面的代码,我试过了,但是没有用”
这是Python代码

#Subject line can be "EXAMPLE" 
for subject_line in lst_subject_line:
# typ, msgs = conn.search(None,'(UNSEEN SUBJECT "' + subject_line + '")')
typ, msgs = conn.search(None,'("UNSEEN")')
msgs = msgs[0].split()
print(msgs)
outputdir = "C:/Private/Python/Python/Source/Mail Reader"
for email_id in msgs:
download_attachments_in_email(conn, email_id, outputdir)

谢谢你

最佳答案

我能找到的大多数答案已经过时了。
这是一个Python(> = 3.6)脚本,用于从Gmail帐户下载附件。确保检查以下过滤器选项。

import os
from imbox import Imbox # pip install imbox
import traceback

# enable less secure apps on your google account
# https://myaccount.google.com/lesssecureapps

host = "imap.gmail.com"
username = "username"
password = 'password'
download_folder = "/path/to/download/folder"

if not os.path.isdir(download_folder):
os.makedirs(download_folder, exist_ok=True)

mail = Imbox(host, username=username, password=password, ssl=True, ssl_context=None, starttls=False)
messages = mail.messages() # defaults to inbox

for (uid, message) in messages:
mail.mark_seen(uid) # optional, mark message as read

for idx, attachment in enumerate(message.attachments):
try:
att_fn = attachment.get('filename')
download_path = f"{download_folder}/{att_fn}"
print(download_path)
with open(download_path, "wb") as fp:
fp.write(attachment.get('content').read())
except:
print(traceback.print_exc())

mail.logout()


"""
Available Message filters:

# Gets all messages from the inbox
messages = mail.messages()

# Unread messages
messages = mail.messages(unread=True)

# Flagged messages
messages = mail.messages(flagged=True)

# Un-flagged messages
messages = mail.messages(unflagged=True)

# Flagged messages
messages = mail.messages(flagged=True)

# Un-flagged messages
messages = mail.messages(unflagged=True)

# Messages sent FROM
messages = mail.messages(sent_from='sender@example.org')

# Messages sent TO
messages = mail.messages(sent_to='receiver@example.org')

# Messages received before specific date
messages = mail.messages(date__lt=datetime.date(2018, 7, 31))

# Messages received after specific date
messages = mail.messages(date__gt=datetime.date(2018, 7, 30))

# Messages received on a specific date
messages = mail.messages(date__on=datetime.date(2018, 7, 30))

# Messages whose subjects contain a string
messages = mail.messages(subject='Christmas')

# Messages from a specific folder
messages = mail.messages(folder='Social')
"""

关于python - 使用python从邮件下载附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61366836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com