Почтовый камень.Извлечь отображаемое имя и адрес получателя как отдельные значения - PullRequest
7 голосов
/ 27 августа 2011

Используя почтовый гем (т. Е. 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

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

1 Ответ

20 голосов
/ 27 августа 2011

Разобрался, извини.Для всех, кто ищет эту тему, ищет решение:

mail[:to].display_names.first
...