如何使用Python转发带附件的电子邮件

时间:2017-05-19 04:50:13

标签: python email email-attachments

我需要编写一个使用imaplib检查gmail收件箱的程序,并将与特定主题不匹配的电子邮件转发到单独的电子邮件中。我可以使用stmplib执行此操作,但如果需要转发和删除的电子邮件包含附件,我不知道该怎么做。以下是我需要更新的代码,以便能够处理带附件的电子邮件。

# Connect and login to email
imap = imaplib.IMAP4_SSL('imap.gmail.com')
imap.login('user@gmail.com','password')
imap.list()
imap.select('inbox')

smtp = smtplib.SMTP_SSL('smtp.gmail.com')
smtp.login('user@gmail.com','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('from@gmail.com', 'to@email.com', message)
                    imap.store(i, '+FLAGS', '\\Deleted')
                    imap.expunge()
                else: #Email we need to process
                    #print 'Process this email'

except IndexError:
    #Inbox is empty

有人能告诉我正确的方法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

要使用此库,您需要一个有效的SMTP服务器。您可以使用您的某个电子邮件提供商,也可以自己设置一个。

完成此操作后,您无法作为链接,例如您提交文件的FTP服务器的示例。 POP也应该支持这一点。

相关问题