Как краткое резюме, у меня есть несколько файлов '.eml' в каталоге.Мне нужно переслать эти электронные письма обратно на «email@example.com».
Проблема в том, что поле «От» в заголовке файла «.eml» содержит другой адрес электронной почты, который не соответствуетс'email@example.com'.
Я искал способ синтаксического анализа файла и обновления содержимого заголовка.
Сначала я использовал следующие модули:
- eml.parser для анализа файла.
- pyo365 для подключения к MSGraph API
Мне удалось отправить содержимое тела, но когда я попытался отправить вложения, мне пришлось декодировать из base64 и извлечь вложения в папке, а затем отправить все.Мне не нужно было изменять содержимое заголовка.
Я знаю, что это был плохой ход, поскольку, вероятно, существует способ отправки закодированных вложений.
Также, поскольку ограничение размера файла вложения MSGraph составляет 4 МБ на запросы, я решил попробовать изменить:
- smtplib для отправки электронного письма
Iпопытался mail-parser безуспешно обновить что-либо в контенте, поскольку обновленные значения не будут постоянными, например:
mail = mailparser.parse_from_bytes (byte_mail) mail.from_ = [(«Мое имя», «email@example.com»)] print (mail.headers) # Это напечатало бы оригинальный заголовок
Я также пробовал с mail.update () и различнымиметод использования этого модуля без успеха.
Я нашел сообщение Python: Изменить значения в файле eml (заголовок электронной почты) , в котором предлагается использовать Parser, replace_header и as_string из email но я так и не смог заставить его работатья не могу позвонить replace_header и as_string :
from email.message import EmailMessage #contains as_string
from email.parser import HeaderParser
file = open(filename, 'r')
h = HeaderParser().parse(file)
#stuck here
Я знаю, что это, вероятно, не только один вопрос, но главная цель - отправить файлы eml обратнона конкретный адрес, от «mail@example.com».