2

我想在我的RoR項目中顯示電子郵件正文。紅寶石郵差從郵件正文中刪除標題

class IncomingMail 
    def initialize(message, params) 
    if person = Person.find_by_email(message.from) 
     changeMessage = Message.where({person_id: person.id}) 

     #message = message.subject.force_encoding("UTF-8") 

     message = message.body.encoded 

     changeMessage.first.text = message 
     changeMessage.first.backInMinutes = 0 
     changeMessage.first.showText = 1 
     changeMessage.first.doNotDisturb = 0 
     changeMessage.first.save 
    end 
    end 

,但我也得到了電子郵件標題

> --e89a8ff1c0465030f204c082e054 Date: Mon, 21 May 2012 04:45:12 +0200 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 
> Content-Transfer-Encoding: 7bit Content-ID: 
> <[email protected]> Text of the mail 

我怎麼能刪除標題?

與它的工作原理是這樣

message = message.subject.force_encoding("UTF-8") 

但不與身體的主題。

+0

ActiveMailer自動編碼UTF-8的主題和正文。所以,你不必爲此做任何自定義編碼。你能解釋你在哪裏得到標題嗎?電子郵件將始終具有從,到,主題字段的標題。 – Salil

+0

我明白了.......-- e89a8ff1c0465030f204c082e054 Date:Mon,21 May 2012 04:45:12 +0200 Mime-Version:1.0 Content-Type:text/plain; charset = ISO-8859-1 > Content-Transfer-Encoding:7bit Content-ID: ><[email protected]> .......然後繼續郵件的文本....但我只想要文字而不是以前認爲的 – user1402147

+0

問題依然存在。我想另外顯示電子郵件。但不是與該標題的東西只有乾淨的文字。 – user1402147

回答

7

我找到了解決方案!

變化:

message = message.body.encoded 

到:

message = message.text_part.body.decoded 

,削減所有的標題詳細路程,讓我只有電子郵件的文本。

它花了很長時間,但它的工作,我希望它也可以幫助其他用戶

+0

好像'message.text_part'就夠了。我沒有注意到'.decoded'的效果。我也沒有注意到'.encoded'和'.decoded'之間的區別。 – Dennis