मेरे पास एक रेल एप्लिकेशन है जो आईएमएपी के माध्यम से इनकमिंग ईमेल को संसाधित करता है। वर्तमान में एक विधि प्रयोग किया जाता है कि किसी दिए गए content_type के लिए एक TMail वस्तु के कुछ हिस्सों खोज:ईमेल उत्तर संसाधित करते समय मैं किसी भी ईमेल क्लाइंट विशिष्टताओं और इतिहास को कैसे अनदेखा कर सकता हूं?
def self.search_parts_for_content_type(parts, content_type = 'text/html')
parts.each do |part|
if part.content_type == content_type
return part.body
else
if part.multipart?
if body = self.search_parts_for_content_type(part.parts, content_type)
return body
end
end
end
end
return false
end
ये ईमेल एक एचटीएमएल के जवाब में आम तौर पर कर रहे हैं ईमेल यह पहली जगह में बाहर भेज दिया। (मूल आउटबाउंड ईमेल कभी भी समान नहीं होता है।) बॉडी टेक्स्ट उपर्युक्त विधि में ईमेल का पूरा इतिहास होता है और मैं केवल उत्तर टेक्स्ट को पार्स करना चाहता हूं।
मैं सोच रहा हूँ कि क्या यह कुछ जगह उचित है मेल के शीर्ष पर पाठ '--- इस रेखा से ऊपर जवाब दें ---' के रूप में मैं एक 37 संकेतों आवेदन में देखा है।
क्या प्रत्येक मेल क्लाइंट के लिए नियमित अभिव्यक्तियों की एक भीड़ (जिसे मैंने अभी तक प्रयास नहीं किया है) लिखने के अलावा, ईमेल में क्लाइंट विशिष्ट परिवर्धन को अनदेखा करने का कोई और तरीका है? वे सभी किसी भी उत्तर के शीर्ष पर अपने स्वयं के बिट पर लगने लगते हैं।
आपके उत्तर के लिए धन्यवाद, मेरे पास संलग्नक वाले ईमेल सहित आने वाले ईमेल पर कुछ बदलावों के साथ एक खेल है। जैसा कि आपने उल्लेख किया है, मैंने वही सेटअप पाया है। जैसा कि आप कहते हैं ऐसा लगता है कि कुछ भी गारंटी नहीं है। यह मुझे मूर्खतापूर्ण लगता है कि इस तरह से मिलान करने वाला पैटर्न ही एकमात्र तरीका है।यहां तक कि --- ऊपर दिए गए उत्तर के साथ --- लाइन आपको अभी भी ईमेल क्लाइंट विनिर्देशों को संभालने की आवश्यकता है, क्योंकि यह स्वाभाविक रूप से रेखा से ऊपर चला जाता है :( – tsdbrown