Текущая проблема
Я собрал скрипт, который загружает вложения из почтового ящика в gmail и по большей части извлекает список переменных на основе электронного письма, из которого получена информация. Однако я обнаружил, что в некоторых случаях «идентификатор сообщения» электронной почты может быть указан как «идентификатор сообщения» или «идентификатор сообщения». Из-за этого я попытался использовать регулярные выражения, чтобы учесть, что между «Сообщением» и «Идентификатором» может быть что угодно, но мой код выдает ошибки независимо от того, что я пытался до сих пор с выражением.
Ошибка
> Traceback (most recent call last): File "email-downloader.py", line
> 64, in <module>
> msg_id = str(email_message).split("Message+\.*: ", 1)[1].split("\n", 1)[0] IndexError: list index out of range
То, что я пробовал
Я посмотрел в Интернете и не смог найти ответ в прошлом, который смог решить эту проблему. Я также пытался изменить регулярное выражение с другими +
местами размещения или \
и []
Code
email_from = str(email_message).split("From: ", 1)[1].split("\n", 1)[0]
subject = str(email_message).split("Subject: ", 1)[1].split("\n", 1)[0]
ext = os.path.splitext(fileName)[1]
delivered = str(email_message).split("Date: ", 1)[1].split("\n", 1)[0]
msg_id = str(email_message).split("Message+\.*: ", 1)[1].split("\n", 1)[0]
print('File: "{file}".'.format(file=fileName))
print('Ext: "{ext}".'.format(ext=ext))
print('Subject: "{subject}".'.format(subject=subject))
print('From: "{email_from}".'.format(email_from=email_from))
print('Date Delivered: "{delivered}".'.format(delivered=delivered))
print('Message ID: "{msg_id}".'.format(msg_id=msg_id))
print("\n")
print('"{msg_id}" "{delivered}" "{file}" "{subject}" "{email_from}"'.format(file=fileName,subject=subject,email_from=email_from,msg_id=msg_id,delivered=delivered), file=open("array/client-ref.tsv", "a"))
os.rename(os.path.join(dirName,fileName), os.path.join(dirName,msg_id + ext))