2011-04-06 86 views
1

我无法转发带有附件的邮件。任何人都可以将我指向正确的方向吗?我猜这是在Fetch语句中,但我不确定。Python - 转发带附件的IMAP电子邮件(imaplib,smtplib)

import sys 
import uuid 
import re 
import smtplib 
import email 

address = '' 
username = '' 
password = '' 

def checkMail(): 
    M = imaplib.IMAP4_SSL(address) 
    M.login(username, password) 
    M.select("INBOX", readonly=True) 
    typ, data = M.search(None, 'Unseen') 

    messageCount = len(data[0].split())  
    print('messageCount: %', messageCount) 
    if messageCount > 0:  
     for num in data[0].split(): 
      typ, data = M.fetch(num, '(BODY[TEXT])') 
      foundAt = data[0][1].find('Content-Type: application') 
      if(foundAt > 0): 
       print('attachmentfound') 
       sendMail(data[0][1]) 


    M.close() 
    M.logout()  


def sendMail(raw_message): 

    toAddress = '' 
    fromAddress = '' 
    LOGIN = '' 
    PASSWORD = '' 


    server = smtplib.SMTP('', 587) 
    server.set_debuglevel(1) 
    server.ehlo() 
    server.starttls() 
    server.login(LOGIN, PASSWORD) 
    server.sendmail(fromAddress, toAddress, raw_message) 
    server.quit() 

def main(): 
    checkMail() 

main() 
+0

您可能想要查看[IMAPClient](http://imapclient.freshfoo.com/)(缓解使用imaplib的许多挫折) – Acorn 2011-04-06 20:38:07

回答

0

这是取...添加取为(BODY [])的伎俩。

+0

将其作为评论发布,或编辑您的答案以包含此内容 – bguiz 2011-04-07 02:02:09