दिलचस्प पोस्ट
Linq अलग – गणना टेम्पलेट क्लास कन्स्ट्रक्टर के "अपरिभाषित संदर्भ" क्या किसी दृश्यपेज पर स्क्रॉल करना अक्षम करना संभव है? स्क्रीनशॉट की आईओएस जांच एसवीएन में अभिगम नियंत्रण कैसे सेटअप करें? बूस्ट एएसआईओ को अवरुद्ध करने के लिए समय-निर्धारण कैसे सेट करें? कोड :: ब्लॉक आईडीई के लिए स्थिर libcurl जोड़ना दृष्टिकोण के माध्यम से आर में ईमेल भेज रहा है jquery बिना scrollTop एनीमेशन Jquery.validate.js का उपयोग कर एक ईमेल पते का प्रारूप मान्य करें एसिंक्रोनस / पृष्ठभूमि थ्रेड स्थिति की निगरानी कैसे करें और JSF घटक में नोटिफिकेशन प्राप्त करें क्या ऐसा आरएसएस में "कोल्डड" है? मैं किसी अन्य के मूल्यों के आधार पर एक वेक्टर को किस प्रकार सॉर्ट करूँ? स्प्रिंग एनोटेशन आधारित डी बनाम एक्सएमएल विन्यास? जावा रेगेक्स को कैप्चरिंग समूह के साथ बदलें

सी # में .eml फ़ाइलों को पार्स करने की अनुशंसाएं

मेरे पास .eml फ़ाइलों की एक निर्देशिका है जिसमें ईमेल वार्तालाप शामिल हैं I क्या इस प्रकार की फ़ाइलों को पार्स करने के लिए सी # में एक अनुशंसित दृष्टिकोण है?

Solutions Collecting From Web of "सी # में .eml फ़ाइलों को पार्स करने की अनुशंसाएं"

मैंने गिथूब को इस उत्तर को स्पष्ट करने के लिए एक नमूना प्रोजेक्ट पोस्ट किया

सीडीओ कॉम डीएलएल विंडोज़ / आईआईएस का हिस्सा है और इसे नेट में संदर्भित किया जा सकता है। यह सटीक पार्सिंग और एक अच्छा ऑब्जेक्ट मॉडल प्रदान करेगा। इसे ADODB.DLL के संदर्भ के साथ conjuction में उपयोग करें।

public CDO.Message LoadEmlFromFile(String emlFileName) { CDO.Message msg = new CDO.MessageClass(); ADODB.Stream stream = new ADODB.StreamClass(); stream.Open(Type.Missing, ADODB.ConnectModeEnum.adModeUnknown, ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified, String.Empty, String.Empty); stream.LoadFromFile(emlFileName); stream.Flush(); msg.DataSource.OpenObject(stream, "_Stream"); msg.DataSource.Save(); stream.Close(); return msg; } 

– जोड़ा गया अगस्त 2017: माइमेकिट भी देखें: https://github.com/jstedfast/MimeKit यह। मानकों का समर्थन करता है, इसलिए क्रॉस-प्लेटफॉर्म को चलाएगा।

लूमी सॉफ्ट में एक माइम पार्सर भी शामिल है

सासा में माइम पार्सर भी शामिल है

एक अच्छा समाधान के लिए इस लिंक का पालन करें:

लेख का सारांश 4 कदम है (नीचे दिए गए दूसरे चरण में लेख में याद आ रही है लेकिन आवश्यक है):

  1. दृश्य स्टूडियो 'संदर्भ जोड़ें' संवाद में 'COM' टैब पर पाया जा सकता है, जो "Windows 2000 लायब्रेरी के लिए Microsoft CDO" के लिए एक संदर्भ जोड़ें यह आपके प्रोजेक्ट में "एडीओडीबी" और "सीडीओ" के 2 संदर्भ जोड़ देगा।

  2. 2 संदर्भ "एडीओडीबी" और "सीडीओ" के लिए इंटरॉप प्रकारों को एम्बेड करना अक्षम करें (संदर्भ -> एडीओडीबी -> गुण -> सेट करें 'एम्बेड इंटरप प्रकार' को गलत और सीडीओ के लिए दोहराने के लिए)

  3. अपने कोड में निम्नलिखित विधि जोड़ें:

     protected CDO.Message ReadMessage(String emlFileName) { CDO.Message msg = new CDO.MessageClass(); ADODB.Stream stream = new ADODB.StreamClass(); stream.Open(Type.Missing, ADODB.ConnectModeEnum.adModeUnknown, ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified, String.Empty, String.Empty); stream.LoadFromFile(emlFileName); stream.Flush(); msg.DataSource.OpenObject(stream, "_Stream"); msg.DataSource.Save(); return msg; } 
  4. इस पद्धति को अपनी एएमएल फ़ाइल और सीडीओ के पूर्ण पथ से गुजरने के द्वारा कॉल करें। संदेश ऑब्जेक्ट के पास आपको सभी, पार्स, विषय, बॉडी सहित पर्स की जानकारी होगी।

एक सभ्य माइम पार्सर प्राप्त करना संभवतः एक रास्ता तय करना होगा आप मुफ्त MIME पार्सर (जैसे कि यह एक codeproject से) का उपयोग करने की कोशिश कर सकते हैं, लेकिन इस तरह से कोड लेखक से टिप्पणियां

मैंने इसके बारे में उसी समय काम किया था, जिसमे मैंने एमएसजी फाइलों के लिए आवरण वर्ग पर काम किया था। कठिनाई में बड़ा अंतर जहां ईएमपी आवरण वर्ग ने कल्पना को पढ़ने के लिए एक दिन लिया और सही हो , एमएसजी आवरण क्लास ने एक हफ्ते ले लिया।

मुझे कोड की गुणवत्ता के बारे में उत्सुक बनाया मुझे यकीन है कि आप कुछ समय / घंटे में ईमेल का 95% ईमेल पार्स कर सकते हैं। मुझे यह भी आश्वस्त है कि शेष 5% अधिकार प्राप्त करने में महीनों लगेंगे मेल क्लाइंट्स और सर्वर्स, कई एन्कोडिंग स्कीमा, अंतर्राष्ट्रीयकरण के मुद्दे, जो यह सुनिश्चित करने के लिए कि जानबूझकर मैलरफार्म किए गए ईमेल आपके ऐप, आदि को क्रैश नहीं करेंगे, द्वारा गैर-सहेजाव करते हुए उत्पादित एस / एमआईएमई (एन्क्रिप्टेड और हस्ताक्षरित ईमेल), यूनिकोड, विकृत ईमेल पर विचार करें।

अगर आपको पार्स करने की ज़रूरत होती है तो एक स्रोत से त्वरित और गंदे पार्सर पर्याप्त हो सकता है यदि आपको जंगलों से ईमेलों को पार्स करने की आवश्यकता है तो बेहतर समाधान की आवश्यकता हो सकती है।

मैं हमारे रेबेक्स सिक्योर मेल घटक की सिफारिश करता हूं, लेकिन मुझे यकीन है कि आप अन्य विक्रेताओं के घटकों के साथ अच्छे परिणाम प्राप्त करेंगे।

अपनी पसंद का पार्सर माइक क्रिस्पिन (एमआईएमई और आईएपीएपी आरएफसी के सह-लेखक) द्वारा तैयार कुख्यात "माइम यातना नमूना संदेश" पर सही तरीके से काम कर रहा है, यह सुनिश्चित करना। परीक्षण संदेश MIME Explorer नमूना में प्रदर्शित होता है और इसे इंस्टॉलेशन पैकेज में डाउनलोड किया जा सकता है।

निम्नलिखित कोड दिखाता है कि ईएमएल फ़ाइल कैसे पढ़ और पार्स करे:

 using Rebex.Mail; MailMessage message = new MailMessage(); message.Load("file.eml"); 

आपको शायद एक ईमेल / माइम पार्सर की आवश्यकता है। सभी हेडर फ़ील्ड को पार्स करना बहुत मुश्किल नहीं है, लेकिन विभिन्न माइम प्रकारों को अलग करना जैसे कि छवियों, अनुलग्नक, विभिन्न पाठ और एचटीएमएल भागों आदि बहुत जटिल हो सकते हैं।

हम एक तीसरे पक्ष के उपकरण का उपयोग करते हैं लेकिन वहां कई सी # उपकरण / पुस्तकालय हैं Google में नि: शुल्क सी # ईमेल माइम पार्सर खोजें जैसे मैं यह एक मिला है:

http://www.codeproject.com/Articles/11882/Advanced-MIME-Parser-Creator-Editor http://www.lumisoft.ee/lswww/download/downloads/Net/info.txt

मैंने इसके लिए पेपरकट के माइम-पार्ट का उपयोग करना शुरू कर दिया है। यह पहली नजर में सभ्य और सरल लगता है

  public void ProcessRawContents(string raw) { // NB: empty lines may be relevant for interpretation and for content !! var lRawLines = raw.Split(new []{"\r\n"}, StringSplitOptions.None); var lMailReader = new MimeReader(lRawLines); var lMimeEntity = lMailReader.CreateMimeEntity(); MailMessageEx Email = lMimeEntity.ToMailMessageEx(); // ... } 

( MailMessageEx , निश्चित रूप से, मेल MailMessage से प्राप्त होता है।)

प्रयत्न:

  • febootimail
  • SmtpExpress
  • लिंकव्स न्यूज़लेटर टर्बो
  • emlBridge – आउटलुक में एमएल फाइलों को आयात करना और लगभग किसी भी अन्य ईमेल क्लाइंट
  • न्यूज़लेटर 2.1 टर्बो
  • थंडरस्टोर (एमएलआरसेन्डर)
  • रूबी ( एएमएल 2 एमबॉक्स का उपयोग कर) जिबूब्स विधि देखें
  • विकास – नया संदेश बनाएं, एएमएल फ़ाइल संलग्न करें,

एक प्रोग्राम लिखें:

  • सी # में (देखें [इस] [4] और यह )। देखें: स्रोत कोड
  • विद्रोही सिक्योर मेल लाइब्रेरी का उपयोग करके
  • .NET (यह देखें, यह और यह )

समाधान:

  • $ cat mail.eml | मेल-एस -सी लेकिन हेडर को पार्स नहीं किया जाएगा, न ही अटैचमेंट।
  • उन्हें अपने जीमेल में ड्रॉप करें (फ़ायरफ़ॉक्स उन्हें अटैचमेंट के रूप में सहेज लेगा)

Aspose.Email.नेट के लिए

Aspose.Email.नेट के लिए आपके .NET अनुप्रयोगों में से ईमेल के साथ काम करने के लिए घटकों का एक संग्रह है। यह संदेश भेजना और प्राप्त करने की क्षमता के साथ कई ईमेल संदेश स्वरूपों और संदेश संग्रहण फ़ाइलों (पीएसटी / ओएसटी) के साथ काम करना आसान बनाता है।

Aspose.Email ईमेल मैसेज स्वरूपों जैसे कि MSG, EML , EMLX और MHT फ़ाइलों को माइक्रोसॉफ्ट आउटलुक स्थापित करने की आवश्यकता के बिना बनाने, पढ़ना और कुशल बनाना आसान बनाता है। आप केवल संदेश सामग्रियों को ही नहीं बदल सकते हैं, बल्कि एक संदेश ऑब्जेक्ट से जोड़ते हैं (जोड़, निकालें और हटा सकते हैं)। आप विषय या अन्य गुणों को बदलकर, प्राप्तकर्ताओं को जोड़कर या हटाकर संदेश शीर्षकों को कस्टमाइज़ कर सकते हैं। यह आपको अपने मैपी संपत्तियों तक पहुंच प्रदान करके एक ईमेल संदेश पर पूर्ण नियंत्रण भी देता है।

Outlook के लिए आवश्यकता के बिना सी # आउटलुक एमएसजी फ़ाइल रीडर

MSGReader एक सी # .NET 4.0 पुस्तकालय है जो कि Outlook MSG और EML (माइम 1.0) फ़ाइलों को पढ़ने के लिए है। आउटलुक में लगभग सभी सामान्य ऑब्जेक्ट समर्थित हैं।