Я хочу, чтобы скрипт Python автоматически (как каждый час) автоматически загружал вложения в gmail в формате .jpg Я попробовал этот код, но он не работает.
def get_csv_or_xl_attachments_from_msg_id(service, messageId):
"""returns a dict of all CSV attachments as pd.DataFrames
in the email associated with `messageId`. The keys for the
dictionary are the csv filenames"""
msg = service.messages().get(userId='me', id=messageId).execute()
msg_parts = msg.get('payload').get('parts')
headers = msg.get('payload').get('headers')
subject = [h['value'] for h in headers if h['name']=='Subject'][0]
if not msg_parts:
return []
msg_parts = _flatten_nested_email_parts(msg_parts)
att_parts = [p for p in msg_parts if p['mimeType'] in [
CSV_MIME_TYPE, XLSX_MIME_TYPE]]
types = [mime_type_to_dtype(p['mimeType']) for p in att_parts]
filenames = [p['filename'] for p in att_parts]
datas = [_get_attachment_from_part(service, messageId, p) for p in att_parts]
dfs = [_convert_attachment_data_to_dataframe(d, t)
for d, t in zip(datas, types)]
return [{'emailsubject': subject, 'filename': f, 'data': d}
for f, d in zip(filenames, dfs)]
def query_for_csv_or_xl_attachments(service, search_query):
message_ids = query_for_message_ids(service, search_query)
csvs = []
for msg_id in message_ids:
loop_csvs = get_csv_or_xl_attachments_from_msg_id(service, msg_id)
csvs.extend(loop_csvs)
return csvs
Код выше возвращает пустой список. хотя у меня есть письма с вложениями.
кто-нибудь может мне помочь в этом?
ниже URL для всего хранилища.
https://github.com/robertdavidwest/google_api