Die SMTP-und IMAP-Protokolle sind zwei Unterscheidungen Dinge: Mails über den SMTP-Server gesendet werden von der IMAP nicht sichtbar.
Daher müssen Sie dieses Verhalten selbst simulieren, indem Sie die E-Mail an Ihre eigene Adresse senden (aber ohne Sie in den "An:" - Header des MIME-Objekts) und dann die E-Mail in das richtige Feld verschieben:
def send(self, recipients, mime_message):
"""
From the MIME message (object from standard Python lib), we extract
information to know to who send the mail and then send it using the
SMTP server.
Recipients list must be passed, since it includes BCC recipients
that should not be included in mime_message header.
"""
self.smtp_connection.sendmail(
self.email_account,
recipients + [self.email_account],
mime_message.as_string()
)
### On the IMAP connection, we need to move the mail in the "SENT" box
# you may need to be smarter there, since this name may change
sentbox_name = 'Sent'
# 1. Get the mail just sent in the INBOX
self.imap_connection.select_folder('INBOX', readonly=False)
sent_msg_id = self.imap_connection.search(['UNSEEN', 'FROM', self.username])
if sent_msg_id:
# 2. Mark it as read, to not bother the user at each mail
self.imap_connection.set_flags(sent_msg_id, '\Seen')
# 3. Copy the mail in the sent box
self.imap_connection.copy(sent_msg_id, sentbox_name)
# 4. Mark the original to delete and clean the INBOX
self.imap_connection.set_flags(sent_msg_id, '\Deleted')
self.imap_connection.expunge()
: korrekt initialisiert, mit demselben Konto, mit dem Namen
self.email_account
eine API Abstraktion verwenden, wo smtp_connection
und imap_connection
werden