Sử dụng đá quý Mail (ví dụ: Rails + ActionMailer), có cách nào sạch để hiển thị tên người nhận không?Mail gem. Trích xuất tên và địa chỉ hiển thị của người nhận dưới dạng các giá trị riêng biệt
Tôi có thể lấy địa chỉ với:
mail.to.first
Và tôi có thể lấy tên hiển thị định dạng + địa chỉ với:
mail.header_fields.select{ |f| f.name == "To" }.first.to_s
Nhưng làm thế nào tôi có thể nhận được chỉ là một phần tên hiển thị (ví dụ trước số <
và >
). Tôi biết ai đó sẽ đề xuất một Regex, nhưng đó không phải là những gì tôi đang tìm kiếm, vì sau đó tôi sẽ phải phân tích ra bất kỳ mã hóa, đó là một cái gì đó đá quý Mail có thể đã làm. Tôi là tác giả của một thư viện Mailer phổ biến trong PHP và nhận thức được những cạm bẫy của việc giả định bit trước khi <
và >
là con người có thể đọc được, trong các tiêu đề, khi các ký tự 8 bit xuất hiện.
tôi có thể làm điều này:
mail.header_fields.select{ |f| f.name == "To" }.first.parse.individual_recipients.first.display_name.text_value
Nhưng có phải là một cách tốt hơn? :)
câu trả lời của bạn giúp tôi tìm thấy một cách để tạo địa chỉ email với tên hiển thị có chứa dấu ngoặc nhọn và trích – tig
Ngoài ra: 'email [: để] .addrs.first .display_name' (có thể hữu ích nếu bạn muốn giữ mối quan hệ tên-địa chỉ). –
Tôi muốn đề cập đến rằng thông điệp [: đến] không phải là ở tất cả những điều tương tự như message.to - đó là xấu hổ !!! Đã cho tôi 2 giờ đào trong mã nguồn để tìm hiểu. – Konstantin