Posta gemini kullanma (örn. Rails + ActionMailer), alıcının görünen adını almanın temiz bir yolu var mı?Mail gem. Alıcının görünen adını ve adresini ayrı değerler olarak ayıkla
Birlikte adresi alabilirsiniz:
mail.to.first
Ve biçimlendirilmiş görünen adı + adresi alabilirsiniz:
mail.header_fields.select{ |f| f.name == "To" }.first.to_s
Ama nasıl sadece görüntü adı kısmını alabilirsiniz (yani önce <
ve >
). Birisinin bir Regex'i önereceğini biliyorum, ama aradığım şey bu değil, çünkü o zaman muhtemelen bir Mail geminin zaten yaptığı bir şey olan herhangi bir kodlamayı ayrıştırmak zorunda kaldım. Ben PHP'de popüler bir Mailer kitaplığının yazarıyım ve <
ve >
'dan önceki bitlerin varsayım tuzaklarının farkındayım, 8-bit karakterleri devreye girdiğinde başlıklar içinde insan tarafından okunabilir.
mail.header_fields.select{ |f| f.name == "To" }.first.parse.individual_recipients.first.display_name.text_value
Ama daha iyi bir yolu olmalı:
bunu yapabilirim?
Cevabınız beni görüntüleme adı içeren köşeli parantez içeren e-posta adresi oluşturmak için bir yol bulmak yardımcı oldu ve ayrıca – tig
tırnak: 'posta [: to] .addrs.first .display_name' (isim-adres ilişkisini korumak istiyorsanız kullanışlı olabilir). –
[: to] mesajının mesajla aynı şeyde olmadığını söylemekten de bahsetmek istiyorum - bu embarassing !!! Bulmak için kaynak kodda 2 saat kazmayı öğrendim. – Konstantin