Search code examples
rubyencodingtmail

How to decode an RFC 2047 encoded email header in Ruby?


I have the following header:

From: =?iso-8859-1?Q?Marta_Falc=E3o?= <[email protected]>

I can easily split out the stuff before the <, which leaves me with

"=?iso-8859-1?Q?Marta_Falc=E3o?="

What can I use to turn this into "Marta Falcão"?


Solution

  • Thanks to Roland Illig for his comment, which led me to two options:

    1. install rfc2047-ruby and call Rfc2047.decode(header)
    2. install TMail and call TMail::Unquoter.unquote_and_convert_to(header, 'utf-8') or better yet TMail::Address.parse(header).friendly, the latter of which strips out the <email address> part