2011-08-27 6 views
6

Korzystanie z klejnotu poczty (np. Rails + ActionMailer), czy istnieje czysty sposób na wyświetlenie nazwy odbiorcy?Klejnot poczty. Wyodrębnij wyświetlaną nazwę odbiorcy i adres jako oddzielne wartości.

mogę uzyskać adres z:

mail.to.first 

I mogę dostać sformatowaną nazwę wyświetlaną + adres z:

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

Ale jak mogę uzyskać tylko nazwę wyświetlacz (czyli przed < i >). Wiem, że ktoś zasugeruje Regex, ale tego nie szukam, ponieważ będę musiał przetworzyć kodowanie, co jest prawdopodobnie klejnotem Mail. Jestem autorem popularnej biblioteki Mailer w PHP i mam świadomość pułapek, które zakładają, że bit przed < i > jest czytelny dla człowieka, w nagłówkach, gdy w grę wchodzą znaki 8-bitowe.

mogę to zrobić:

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

Ale musi być jakiś lepszy sposób? :)

Odpowiedz

18

Wyliczyłem, przepraszam. Dla każdego, kto natrafi ten wątek szuka rozwiązania:

mail[:to].display_names.first 
+0

Twoja odpowiedź pomogła mi znaleźć sposób, aby utworzyć adres e-mail z nazwą wyświetlaną zawierających nawiasach kątowych i cytuje – tig

+1

również: 'poczty [: do] .addrs.first .display_name' (może być przydatny, jeśli chcesz zachować relację nazwa-adres). –

+1

Chciałbym wspomnieć, że przesłanie [: to] wcale nie jest tym samym co message.to - to jest zawstydzające !!! Zajęło mi to 2 godziny na wykopanie kodu źródłowego, żeby się dowiedzieć. – Konstantin

Powiązane problemy