我們有一位用戶,其郵件帳戶被垃圾郵件淹沒。我懷疑他發佈了大量的電子郵件帳戶,因此受到的限制比他只有一個或兩個地址多。如何通過紅寶石中的IMAP獲取電子郵件的收件人地址
我想敲一些代碼,它將掃描他的郵箱,並報告郵寄地址的數量(理想情況下是發送到他郵箱的郵箱地址,例如,如果他是BCC'd和收件人:是billg @ microsoft.com,我想知道哪個地址是他到達的地址)。
我可以得到To:如果它出現在信封中,但是如果不是,那麼我需要退回到像Cc這樣的替代方法:也許實際上在郵件標題中獲得正則表達式, 。我可以處理。我只是不確定如何拆分Ruby msg對象。
所以,對我來說或許一個更好的問題是,「知道我有一個從imap.fetch返回的對象msg,我該如何檢查可用的各種方法,如msg.to和msg.from?」
或許也是「我應該用花哨的郵件庫像Ruby的郵件?」
到目前爲止的代碼 - 我真的是Ruby的新手,好嗎?
imap = Net::IMAP.new(server)
imap.login(user, pass)
imap.select(folder)
imap.search(['ALL']).each do |message_id|
msg = imap.fetch(message_id,'ENVELOPE')[0].attr['ENVELOPE']
if msg.to
puts "#{msg.to[0].mailbox}@#{msg.to[0].host}: \t#{msg.from[0].name}: \t#{msg.subject}"
else
# puts msg.inspect
msg = imap.fetch(message_id,'RFC822')[0].attr['RFC822']
puts msg.inspect
quit
end
# p msg.methods
end
這似乎是一個整潔的問題,也是一個很好的方向/方法來尋找電子郵件 - 但爲什麼你需要掃描用戶的郵件?什麼將發現所有用戶的電子郵件地址爲您做? –
(1)它將幫助我確定他收到的垃圾郵件數量是否是他的組織在過去十年中將每個廢棄的電子郵件地址轉發給這位可憐的人的結果。 (2)它將爲我提供一個用於分析工作量隨時間變化的有用工具。我喜歡一個工具,告訴我「在最後一個(帳單)月份,誰通過電子郵件發送了我和誰發了電子郵件?」。爲什麼沒有這個插件?最後,(3)它會幫助我學習更多的Ruby。 –