Пересылка электронной почты с Python smtplib

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

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

Вот то, что я имею до сих пор (клиент является imaplib. Соединение IMAP4 и идентификатор являются идентификатором сообщения):

import smtplib, imaplib

smtp = smtplib.SMTP(host, smtp_port)
smtp.login(user, passw)

client = imaplib.IMAP4(host)
client.login(user, passw)
client.select('INBOX')

status, data = client.fetch(id, '(RFC822)')
email_body = data[0][1]
mail = email.message_from_string(email_body)

# ...Process message...

# This doesn't work
forward = email.message.Message()
forward.set_payload(mail.get_payload())
forward['From'] = 'source.email.address@domain.com'
forward['To'] = 'my.email.address@gmail.com'

smtp.sendmail(user, ['my.email.address@gmail.com'], forward.as_string())

Я уверен, что существует что-то немного более сложное, которое я должен делать относительно содержания MIME сообщения. Конечно, существует некоторый простой способ просто передачи всего сообщения хотя?

# This doesn't work either, it just freezes...?
mail['From'] = 'source.email.address@domain.com'
mail['To'] = 'my.email.address@gmail.com'
smtp.sendmail(user, ['my.email.address@gmail.com'], mail.as_string())
11
задан robbles 28 April 2010 в 05:39
поделиться