Je dois écrire un programme qui vérifie une boîte de réception Gmail en utilisant imaplib
et envoie les e-mails qui ne correspondent pas à un sujet spécifique à un e-mail distinct. Je peux le faire en utilisant stmplib
mais je ne sais pas comment le faire si l'e-mail qui doit être envoyé et supprimé contient une pièce jointe. Ce qui suit est mon code que je dois mettre à jour pour être capable de gérer les emails avec des pièces jointes.Comment transférer un e-mail avec pièces jointes en utilisant Python
# Connect and login to email
imap = imaplib.IMAP4_SSL('imap.gmail.com')
imap.login('[email protected]','password')
imap.list()
imap.select('inbox')
smtp = smtplib.SMTP_SSL('smtp.gmail.com')
smtp.login('[email protected]','password')
try:
#Search and return sequential ids
result, data = imap.search(None,'ALL')
ids_list = data[0].split()
#print 'Total emails: '+str(len(ids_list))
latest_id = ids_list[-1]
#Process each email in inbox
for i in ids_list:
t, d = imap.fetch(i, '(RFC822)')
for res_part in d:
if isinstance(res_part, tuple):
text = res_part[1]
msg = email.message_from_string(text)
subject = msg['subject']
#print 'Subject: '+subject
message = get_txt(msg) #Retrieves email body text
#print message
if subject != 'The subject I\'m looking for': #Junk email
#print 'Sending to another email...'
smtp.sendmail('[email protected]', '[email protected]', message)
imap.store(i, '+FLAGS', '\\Deleted')
imap.expunge()
else: #Email we need to process
#print 'Process this email'
except IndexError:
#Inbox is empty
Quelqu'un peut-il me montrer la bonne façon d'y parvenir? Merci!
@abccd J'ai mis à jour avec le code actuel que j'ai. J'en ai besoin pour être capable de gérer les pièces jointes des emails alors qu'il ne gère actuellement que le corps d'un email. – McFizz