2009-07-21 7 views
6

हमारे पास एक विक्रेता है जो ईमेल संलग्नक के रूप में सीएसवी फाइल भेजता है। इन सीएसवी फाइलों में ऐसी स्थितियां होती हैं जो हमारे आवेदन में आयात की जाती हैं। मैं प्रक्रिया को अंत तक स्वचालित करने की कोशिश कर रहा हूं, लेकिन यह वर्तमान में किसी ईमेल को खोलने वाले किसी व्यक्ति पर निर्भर करता है, जो सर्वर साझा करने के लिए अनुलग्नक को सहेजता है, इसलिए एप्लिकेशन फ़ाइल का उपयोग कर सकता है।प्रोग्रामेटिक रूप से एक पीओपी 3 से एक ईमेल खोलें और एक अनुलग्नक निकालें

चूंकि मैं विक्रेता को अपनी प्रक्रिया बदलने के लिए मना नहीं कर सकता, जैसे कि एफ़टीपी स्थान या वेब सेवा की पेशकश, मैं मौजूदा प्रक्रिया को स्वचालित करने की कोशिश कर रहा हूं।

क्या किसी को किसी पीओपी 3 खाते से प्रोग्रामेटिक रूप से ईमेल खोलने और अनुलग्नक निकालने का तरीका पता है? पसंदीदा समाधान Windows 2003 सर्वर पर रहता है, VB.NET लिखा और सुरक्षित हो। एप्लिकेशन पीओपी 3 सर्वर के समान सर्वर पर रह सकता है, उदाहरण के लिए, हम मुफ्त पीओपी 3 सर्वर स्थापित कर सकते हैं जो विंडोज सर्वर के साथ आता है और फाइल सिस्टम पर संग्रहीत मेल फ़ाइल के खिलाफ खींचता है।

बीटीडब्लू, हम एक मौजूद होने पर शेल्फ समाधान के लिए भुगतान करने को तैयार हैं।

नोट: मैंने इस question पर देखा है लेकिन उत्तर कोडप्रोजेक्ट समाधान को इंगित करता है जो अनुलग्नकों से निपटता नहीं है।

उत्तर

2

Reading Email using Pop3 in C#

कम से कम के संभावित दोहराव, वहाँ सुझावों में से एक शेड लोड नहीं है आप पा सकते हैं कि उपयोगी

+0

लगभग ... मैं अंतर्निहित सुरक्षा के साथ प्रीपेक्टेड समाधान की तलाश में था और वीबी.नेट में लिखा था। अगर मुझे कोई और जवाब नहीं मिलता है, तो मैं आपको यह जवाब स्वीकार करूंगा। – Josh

3

Mail.dll email component प्रयास करें, यह बहुत सस्ती है, संलग्नक राष्ट्रीय वर्णों का समर्थन करता है और उपयोग करने के लिए, यह आसान है

Using pop3 As New Pop3() 
    pop3.Connect("mail.server.com") 
    pop3.Login("user", "password")        

    Dim builder As New MailBuilder() 
    For Each uid As String In pop3.GetAll()   
     ' Receive email message' 
     Dim mail As IMail = builder.CreateFromEml(pop3.GetMessageByUID(uid)) 

     'Write out received message' 
     Console.WriteLine(mail.Subject) 

     'Here you can use mail.Attachmets collection' 
     For Each attachment As MimeData In mail.Attachments 
      Console.WriteLine(attachment.FileName) 
      attachment.Save("c:\" + attachment.FileName) 
      ' you can also use attachment.Data here' 
     Next attachment 

    Next 

    pop3.Close(true) 
End Using 

आप इसे यहाँ डाउनलोड कर सकते हैं: भी एसएसएल का समर्थन करता है http://www.lesnikowski.com/mail

+1

एक अच्छा समाधान की तरह लग रहा है। – Josh

1

मैं मौजूदा सॉफ्टवेयर और न्यूनतम प्रोग्रामिंग का उपयोग करके अधिक सामान्यीकृत "डाउनलोड पीओपी 3 संदेश और अनुलग्नक निकालने" समाधान के लिए देर से सुझाव में फेंक दूंगा। मुझे ऐसा करने के लिए एक क्लाइंट के लिए ऐसा करने की ज़रूरत थी जिसने ईमेल के माध्यम से फ़ैक्स प्राप्त करने के लिए स्विच किया था और अनुलग्नकों को उस स्थान पर मैन्युअल रूप से सहेजने से प्रसन्न नहीं था जहां उन्हें एप्लिकेशन में आयात किया जा सकता था।

* nix सिस्टम fetchmail पर संदेशों को डाउनलोड करने के लिए मानक हो रहा है और बहुत सक्षम है, लेकिन मैं दोनों सादगी और Windows संगतता के लिए mpop चुना है (लेकिन यह पार मंच है)। अगर एमपीओपी ने मेरे लिए चाल नहीं की थी, तो शायद मैं पाइथन-आधारित getmail के साथ कुछ करने के लिए समाप्त हो गया था, जिसे बनाया गया था जब fetchmail के विकास एक समय के लिए रुक गया था (यह फिर से शुरू हुआ है)।

एमपीओपी या तो कमांड लाइन या कॉन्फ़िगरेशन फ़ाइल के माध्यम से नियंत्रित किया जाता है, इसलिए मैंने बस कई विन्यास फाइलें बनाई हैं और लोड करने के लिए फ़ाइल कमांड लाइन के माध्यम से निर्दिष्ट करें। मैं इसे "एक्सचेंज पिकअप निर्देशिका" मोड में उपयोग कर रहा हूं, जिसका अर्थ है कि यह केवल संदेशों को डाउनलोड करता है और उन्हें निर्दिष्ट निर्देशिका में पाठ (.eml) फ़ाइलों के रूप में छोड़ देता है।

संदेश अनुलग्नकों के निष्कर्षण के लिए, UUDeview मानक (मैं Windows port of UUDeview का उपयोग कर रहा हूं) बस किसी भी सिस्टम के बारे में बताता हूं जो आप चाहते हैं कि बस आप चाहें। इसका मेरा मुख्य विकल्प एक बहुत कम सक्षम पाइथन लिपि था जिसे मैंने 2007 में एक अलग क्लाइंट के लिए विकसित किया था, लेकिन मुझे पाइथन या किसी भी पायथन के साथ पैकेजिंग स्थापित करने पर पहले से ही निष्पादित निष्पादन योग्य के साथ जाने में प्रसन्नता हो रही है। टू-एक्स विकल्प।

अंत में कॉन्फ़िगरेशन है - उपरोक्त वर्णित दो mpop कॉन्फ़िगरेशन फ़ाइलों के साथ (जो मैं कमांड लाइन विकल्पों का उपयोग करके दूर कर सकता हूं), मेरे पास दो 2-लाइन .cmd फ़ाइलें शेड्यूल किए गए कार्य द्वारा हर 10 मिनट लॉन्च की गई हैं - एक कार्यशील निर्देशिका में डाउनलोड करने के लिए mpop लॉन्च करने वाली पहली पंक्ति और UUDeview लॉन्च करने और निर्दिष्ट प्रकारों (.pdf या .tif) के अनुलग्नक निकालने के लिए दूसरी पंक्ति, फिर प्रत्येक फ़ाइल को हटाएं जिससे उसने अनुलग्नक निकाले हैं। आउटपुट को दूसरी निर्देशिका में भेजा जाता है, जिससे कर्मचारी सीधे आवश्यकतानुसार फाइल संलग्न कर सकते हैं।

यह अंततः इन सिरों तक पहुंचने का सबसे शानदार तरीका नहीं है, लेकिन यह प्रत्येक चरण में त्वरित, सरल, कार्यात्मक और उचित रूप से मजबूत था - अगर कुछ गलत हो जाता है तो यह विफल रहता है कि कोई डेटा खो नहीं जाता है। एकमात्र ऐसे स्थान जहां डेटा खोया जा सकता है, कोई भी गैर-अनुलग्नक संदेश समर्पित फ़ैक्स ईमेल पते पर भेजे जा रहे हैं, और यहां तक ​​कि वे प्रसंस्करण निर्देशिका में बैठेंगे और अंत में पकड़े जाएंगे।

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