Mail gem. Извлечь отображаемое имя и адрес получателя как отдельные значения

Используя гем Mail (например, Rails + ActionMailer), есть ли чистый способ получить отображаемое имя получатель?

Я могу получить адрес с помощью:

mail.to.first

И я могу получить отформатированное отображаемое имя + адрес с помощью:

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

Но как я могу получить только часть отображаемого имени (т.е. до < и > ). Я знаю, что кто-то собирается предложить Regex, но это не то, что я ищу, так как тогда мне пришлось бы разбирать любую кодировку, что, вероятно, уже делает Mail gem. Я являюсь автором популярной библиотеки Mailer на PHP и знаю о ловушках, если просто предположить, что бит перед < и > читается человеком в заголовках, когда 8 -битовые символы вступают в игру.

Я могу сделать это:

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

Но должен быть способ лучше? :)

8
задан d11wtq 27 August 2011 в 07:44
поделиться