2012-05-05 62 views
2

使用紅寶石郵件閱讀電子郵件。使用紅寶石郵件閱讀電子郵件不是以文本格式重新發送郵件正文

除了郵件正文以外,所有內容都以正確的可讀格式獲得。

郵件正文顯示爲其他一些編碼格式。

我的代碼是:

Mail.defaults do 
    retriever_method :pop3, :address => "some.email.com", 
       :port  => 995, 
       :user_name => 'domain/username', 
       :password => 'pwd', 
       :enable_ssl => true 
end 


puts "From" 
puts mail.from 
puts "Sender:" 
puts mail.sender 
puts "To:" 
puts mail.to    
puts "CC:" 
puts mail.cc    
puts "Subject:" 
puts mail.subject   
puts "Date:" 
puts mail.date.to_s  
puts "MessageID:" 
puts mail.message_id  
puts "Body:" 
#puts mail.body 

輸出是:

[email protected]

發件人:

要: [email protected]

CC:

主題: 情形4:法律保留通知

日期: 2012-04-24T14:46:25-04:00

郵件ID: [email protected]

身體:

日期:星期六,2012 9時45分08秒-0700 MIME的版本可能05:1.0 的Content-Type:text/plain的; 字符集= UTF-8 內容傳輸編碼:BASE64 內容ID:< [email protected]>

SGVsbG8gU2lyL01hZGFtLA0KDQpCcmllZiBpbnRyb2R1Y3Rpb24gdG8gdGhl IGNhc2UgY2FzZTQNCg0KV2UgaGF2ZSBpZGVudGlmaWVkIHlvdSBhcyBhIHBl cnNvbiB3aG8gbWF5IGhhdmUgImRvY3VtZW50cyIgLS0gd2hpY2ggaW5jbHVk ZXMgYm90aCBwaHlzaWNhbCBhbmQgZWxlY3Ryb25pYyBkb2N1bWVudHMgLS0g dGhhdCBhcmUgcmVsYXRlZCB0byB0aGlzIG1hdHRlci4gV2UgYXJlIGltcGxl bWVudGluZyBhIG1hbmRhdG9yeSBkb2N1bWVudCByZXRlbnRpb24gcG9saWN5 IHRvIHByZXNlcnZlIHRoZXNlIGRvY3VtZW50cy4gUGxlYXNlIGNhcmVmdWxs eSByZXZpZXcgdGhpcyBtZW1vcmFuZHVtIGFuZCBzdHJpY3RseSBhZGhlcmUg dG8gdGhlIG1hbmRhdG9yeSBkb2N1bWVudCByZXRlbnRpb24gcG9saWN5IG91 dGxpbmVkIGhlcmVpbi4gW0NvbXBhbnldIGNvdWxkIGJlIHN1YmplY3QgdG8g

,所以我不能讀取郵件正文。

需要做些什麼才能閱讀郵件,我需要從正文中提取文本,並且必須使用郵件正文內的鏈接。

Bhavesh

+0

身體是用base64。你需要[解碼](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/base64/rdoc/Base64.html#method-i-decode64)。 – Ben

+0

執行此操作的一種方法是將mail.encoded保存爲擴展名爲.eml的文件,該文件可以在某些電子郵件應用程序(例如Outlook)中打開。這樣您可以查看整個電子郵件,包括附件。 –

回答

4

郵件寶石不會自動解碼身體。您可以使用:

mail.message.body.decoded 

得到解碼的消息正文。 此外,您可能會發現您想要訪問消息的HTML部分的純文本。爲了做到這一點,你可以使用類似以下內容:

plain_part = message.text_part ? message.text_part.body.decoded : nil 
html_part = message.html_part ? message.html_part.body.decoded : nil 

然後,您可以使用message.body.decoded在情況下,這些部件不存在回退。

0

添加mail寶石,只需使用電子郵件正文格式mail.parts [1] .body.decoded

相關問題