2011-08-27 5 views
6

メールジェム(Rails + ActionMailer)を使用すると、受信者の表示名を取得するきれいな方法がありますか?メール宝石。受信者の表示名と住所を別々の値として抽出する

私はアドレスを取得することができます。

mail.to.first 

そして私はでフォーマット表示名+アドレスを取得することができます

mail.header_fields.select{ |f| f.name == "To" }.first.to_s 

しかし、どのように、私は前に、すなわち(単なる表示名の部分を取得することができます<および>)。誰かがRegexを提案しようとしていることは知っていますが、これは私が探しているものではありません。なぜなら、Mail宝石がおそらくすでに行っているエンコーディングを解析しなければならないからです。私はPHPで普及しているMailerライブラリの著者であり、8ビット文字が出現すると、<>が人間が読める前にビットを仮定しているという落とし穴を見ています。

mail.header_fields.select{ |f| f.name == "To" }.first.parse.individual_recipients.first.display_name.text_value 

をしかし、より良い方法がなければならない:

私はこれを行うことができますか? :)

答えて

18

それを実証しました、申し訳ありません。解決策を探して、このスレッドを打つ誰のために: `メール:

mail[:to].display_names.first 
+0

あなたの答えは、私はまた、角括弧や引用符 – tig

+1

を含む表示名と電子メールアドレスを作成する方法を見つける助けた[を:に] .addrs.first .display_name'(名前とアドレスの関係を保持したい場合に便利です)。 –

+1

私はメッセージ[:to]はメッセージと全く同じものではないことを言いたいと思います - それは恥ずかしいです!見つけ出すために2時間のソースコードを掘り下げました。 – Konstantin

関連する問題