2011-08-27 5 views
6

मेल मणि (यानी रेल + एक्शनमेलर) का उपयोग करके, प्राप्तकर्ता का प्रदर्शन नाम प्राप्त करने का एक साफ तरीका है?मेल मणि। प्राप्तकर्ता डिस्प्ले नाम और पता को अलग-अलग मानों के रूप में निकालें

मैं के साथ पता प्राप्त कर सकते हैं:

mail.to.first 

और मैं के साथ स्वरूपित प्रदर्शन नाम + पता प्राप्त कर सकते हैं:

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

लेकिन यह कैसे मैं सिर्फ प्रदर्शन नाम हिस्सा प्राप्त कर सकते हैं (यानी पहले < और >)। मुझे पता है कि कोई रेगेक्स का सुझाव देने जा रहा है, लेकिन यह वह नहीं है जिसे मैं ढूंढ रहा हूं, क्योंकि मुझे किसी भी एन्कोडिंग को पार्स करना होगा, जो कि मेल मणि शायद पहले से ही करता है। मैं PHP में एक लोकप्रिय मेलर लाइब्रेरी का लेखक हूं और < और > से पहले थोड़ा सा मानने के नुकसान के बारे में जागरूक हूं, हेडर में, जब 8-बिट वर्ण खेलते हैं तो मानव-पठनीय है।

मैं यह कर सकता:

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

लेकिन एक बेहतर तरीका होना चाहिए? :)

उत्तर

18

यह पता चला, क्षमा करें। समाधान की तलाश में है जो इस धागे हिट किसी और के लिए:

mail[:to].display_names.first 
+0

आपका जवाब मुझे प्रदर्शन नाम युक्त कोण कोष्ठक के साथ ईमेल पता बनाने के लिए एक रास्ता खोजने में मदद की और इसके अलावा – tig

+1

उद्धरण: 'मेल [: करने के लिए] .addrs.first .display_name' (यदि आप नाम-पता संबंध रखना चाहते हैं तो आसान हो सकता है)। –

+1

मैं उस संदेश का उल्लेख करना चाहूंगा [: to] संदेश के समान नहीं है। - यह शर्मनाक है !!! पता लगाने के लिए मुझे स्रोत कोड में खुदाई के 2 घंटे लग गए। – Konstantin

संबंधित मुद्दे