我需要编写一个使用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
有人能告诉我正确的方法吗?谢谢!
答案 0 :(得分:0)
要使用此库,您需要一个有效的SMTP服务器。您可以使用您的某个电子邮件提供商,也可以自己设置一个。
完成此操作后,您无法作为链接,例如您提交文件的FTP服务器的示例。 POP也应该支持这一点。