Пересылка Outlook / обмен электронной почты с использованием Python - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь прочитать электронное письмо, получить заголовки (от, до, копию, тему) и текст сообщения и переслать письмо (пересылка электронной почты зависит от пользователя).

Я сослался на сообщение , чтобы написать свой код.Я смог переслать несколько писем, но некоторые не смогли.

import smtplib, imaplib, email

imap_host = "imap-mail.outlook.com"
smtp_host = "smtp-mail.outlook.com"
imap_port = 993
smtp_port = 587
user = "aaa@bbb.com"
passwd = "****"

### Testing random emails using msgid
msgid = 5000
from_addr = "aaa@bbb.com" 
to_addr = "ccc@ddd.com"

client = imaplib.IMAP4_SSL(imap_host, imap_port)
client.login(user, passwd)
client.select('INBOX')


status, data = client.fetch(str(msgid), "(RFC822)") #(RFC822) or (UID BODY[TEXT])
email_data = data[0][1]
client.close()
client.logout()

message = email.message_from_bytes(email_data)

message.add_header('From', from_addr) #also tried replace_header
message.replace_header('To', to_addr)

smtp = smtplib.SMTP(smtp_host, smtp_port)
smtp.starttls()
smtp.login(user, passwd)
smtp.sendmail(from_addr, to_addr, message.as_string())
# smtp.send_message(message, from_addr, to_addr)
smtp.quit()

Вот ошибка, которую я получаю: 554, b'5.2.0 STOREDRV.Submission.Exception: StoragePermanentException.MapiExceptionDuplicateDelivery;Не удалось обработать сообщение из-за постоянного исключения с сообщением. Невозможно получить идентификатор из имени.

Кроме того, любые предложения о том, как сделать электронное письмо похожим на пересылку, то есть включить заголовки исходного электронного письма в текст сообщениявперед (как если бы он был перенаправлен из веб-Outlook или приложения Outlook).Спасибо

...