Используя гем 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
Но должен быть способ лучше? :)