2013-03-31 63 views
1

我想用Net :: IMAP處理一大堆電子郵件,但我想跳過帶有附件的電子郵件,因爲它們需要很長時間。任何提示?最終,我正在儘可能快地下載所有電子郵件的文本和HTML內容。現在,我一次只讀取一個UID,並將其與15個進程(最大GMAIL允許的)並行化,但是我對帶附件的消息感到困惑。是否可以只下載沒有附件的IMAP消息?

imap = Net::IMAP.new('imap.gmail.com', 993, usessl = true, certs = nil, verify = false) 
imap.authenticate('XOAUTH2', user.email, user.token) 
mailbox = "[Gmail]/All Mail" 
imap.select(mailbox) 
message_id = 177 
imap.fetch(message_id,'RFC822')[0].attr['RFC822'] # this fetches the whole message, including attachment, which makes it slow... 

回答

2

IMAP RFC不提供任何這樣的實施方式,但作爲替代也可能是一個可能的黑客,假定郵件以下RFC標準,提取郵件的整個郵件首部及檢查content type,如果它是multipart/mixed然後確定郵件中存在附件。

內容類型,你可以在http://en.wikipedia.org/wiki/MIME

獲得更多信息這僅僅是可能的方式找到的附件之一。

+0

+1爲黑客攻擊的實例 – 2013-04-05 05:45:44

相關問題