2008-08-20 9 views
16

मुझे समय-समय पर एक ईमेल इनबॉक्स की निगरानी करने और डेटाबेस तालिका में प्राप्त संदेशों के विवरण डालने के लिए सी # में एक विंडोज सेवा लिखने के लिए कहा गया है।ईमेल इनबॉक्स तक पहुंचने के लिए .NET घटक के लिए सिफारिशें

मेरा वृत्ति इसे पीओपी 3 के माध्यम से करना है और यह सुनिश्चित करना है कि ".NET POP3 घटक" के लिए गुगलिंग अनगिनत (ठीक है, 146,000) परिणाम उत्पन्न करती है।

क्या किसी ने पहले कुछ भी किया है और क्या आप एक सभ्य घटक की सिफारिश कर सकते हैं जो बैंक को तोड़ नहीं देगा (कुछ सौ डॉलर अधिकतम)?

क्या पीओपी 3 की बजाय IMAP का उपयोग करने के कोई लाभ होंगे?

+0

https://github.com/jstedfast/MailKit एक अच्छा और सक्रिय विकल्प है। – Rory

उत्तर

4

मैं recomment chilkat। उनके पास बहुत स्थिर घटक हैं, और आप एक ही डेवलपर के लिए $ 99 जितना सस्ता के लिए अपना ईमेल घटक प्राप्त कर सकते हैं। निजी तौर पर, मुझे लगता है कि घटकों के पूरे पैकेज के साथ जाना एक बेहतर सौदा है, क्योंकि यह केवल $ 28 9 है, और कई उपयोगी घटकों के साथ आता है। मैं किसी भी तरह से उनके साथ संबद्ध नहीं हूं, हालांकि शायद मैं ऐसा लगता हूं जैसे मैं हूं।

+0

चिलकट के साथ मेरी एकमात्र शिकायत एपीआई बहुत "महसूस" नहीं करती है। नेट (यदि आप जानते हैं कि मेरा क्या मतलब है)। जैसे अपवाद के बजाय "GetLastError()"। हालांकि महान घटक और एक महान मूल्य। मेरे पास प्रश्नों के दौरान समर्थन पूरी तरह से शीर्ष-स्तर पर है, आश्चर्यजनक रूप से त्वरित बारी-बारी से। –

+1

शायद यह इस तथ्य के कारण है कि यह एक पुरानी लाइब्रेरी है जिसे नेट पर पोर्ट किया गया है। – Kibbee

+2

अपवाद सुनिश्चित करें "महसूस करें"।नेट, लेकिन यह टिप्पणी करने योग्य है कि Google Code दिशानिर्देश अपवादों के बजाय त्रुटि कोड और दावे का उपयोग करता है। वे दस्तावेज़ में यह भी स्पष्ट करते हैं कि वे वास्तव में महसूस नहीं करते हैं कि अपवादों का उपयोग करना गलत है, लेकिन वे कुछ अच्छे कारण नहीं देते हैं। –

6

मैं अपने आवेदन, BugTracker.NET में नि: शुल्क और मुक्त स्रोत SharpMimeTools का उपयोग करता हूं। यह बहुत ही भरोसेमंद कर दिया गया है:

http://anmar.eu.org/projects/sharpmimetools/

फ़ाइलों POP3Client.cs, POP3Main.cs देखें, और insert_bug.aspx

+0

धन्यवाद कोरी, मैं एक नज़र डालेगा। –

+0

मुझे नहीं पता कि आपको Pop3Client.cs कहां से मिला है। मुझे लगता है कि SharpMimeTools केवल एक महान Mime पार्सिंग है। –

1

Lumisoft खुला स्रोत है और (अन्य सामग्री के अलावा) IMAP और POP ग्राहकों में शामिल हैं । मैं उन्हें बिना किसी समस्या के वर्षों से उपयोग कर रहा हूं।

+0

हाय, क्या आप सी # का उपयोग कर अदृश्य ईमेल की सूची देखने के लिए नमूना कोड साझा कर सकते हैं? –

3

मैं AdvancedIntellect की अनुशंसा करता हूं। पीओपी 3 और आईएमएपी (एएसपीनेट पीओपी 3 और एएसपीनेटिमैप) के लिए घटक हैं। अच्छी गुणवत्ता और बहुत ही संवेदनशील समर्थन - मुझे सप्ताहांत पर अपने प्रश्नों के उत्तर प्राप्त करना याद है।

2

यदि आप ओपन सोर्स पीओपी 3 कार्यान्वयन या कुछ मुफ्त में उपलब्ध हैं तो आपके पास कोड को संशोधित करने और आवश्यक दिशा में विस्तार करने के लिए उपयोग होगा। संदेशों को पुनर्प्राप्त करने के लिए एक त्वरित Google ने इस सी # POP3 code from Code Project में परिणाम दिया।

अपने आप को रोल करने के बारे में कुछ सशक्त है, या कम से कम इसे विस्तारित करना।

alt text

+0

इसके अलावा यह बैंक को शुरुआती लागत $ 0 तक नहीं तोड़ देगा। हालांकि चल रहे विकास कार्य और समग्र "टीसीओ" पर विचार किया जाना चाहिए। –

3

आप हमारे Rebex Mail component जाँच करना चाहते हो सकता है। यह IMAP, एसएमटीपी, पॉप 3 प्रोटोकॉल और और S/MIME पार्सर भी शामिल है।

POP3 में विशिष्ट मानदंडों से मेल खाने वाले संदेशों के लिए 'अपठित' संदेशों या खोज की अवधारणा नहीं है। POP3 बस आपके इनबॉक्स में सभी संदेश लौटाता है।

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

निम्नलिखित कोड कक्षा का उपयोग कर Imap सर्वर से अपठित संदेशों को डाउनलोड करने का तरीका दिखाता है।

// create client, connect and log in 
Imap client = new Imap(); 
client.Connect("imap.example.org"); 
client.Login("username", "password"); 

// select folder 
client.SelectFolder("Inbox"); 

// get message list - envelope headers 
ImapMessageCollection messages = client.Search 
    (
    ImapSearchParameter.HasFlagsNoneOf(ImapMessageFlags.Seen) 
); 

// display info about each message 
Console.WriteLine("UID | From | To | Subject"); 
foreach (ImapMessageInfo message in messages) 
{ 
    Console.WriteLine(
     "{0} | {1} | {2} | {3}", 
     message.UniqueId, 
     message.From, 
     message.To, 
     message.Subject); 
} 

// disconnect 
client.Disconnect(); 

एकाधिक खोज मानदंडों को संयोजित करने का उदाहरण निम्नानुसार है। यह पिछले साल से 100 केबी से बड़े संदेश भेजेगा।

ImapMessageCollection messages = client.Search 
    (
    ImapSearchParameter.Arrived(DateTime.Now.AddYears(-1), DateTime.Now), 
    ImapSearchParameter.Size(1024 * 100, Int32.MaxValue) 
); 

आप rebex.net/secure-mail.net/download.aspx

+0

एक अस्वीकरण छोड़ दें कि यह आपका उत्पाद है। – DMan

+1

@DMan: यह लगभग पहले ही पहली पंक्ति में पहले से ही है ("आप __our__ रेबेक्स मेल की जांच कर सकते हैं ...")। मैं अपना कनेक्शन छिपाने की कोशिश नहीं कर रहा हूं। सुझाव यह सुधारने के लिए कैसे स्वागत है (अंग्रेजी मेरी पहली भाषा नहीं है)। –

+0

क्षमा करें, मुझे उस सूक्ष्मता को याद आया। मैं क्षमाप्रार्थी हूं। – DMan

0

सी # मेल से परीक्षण डाउनलोड कर सकते हैं लागत $ 0, लेकिन यह भी जीएनयू जीपीएल लाइसेंस प्राप्त है, इसलिए यह सुनिश्चित करें कि ठीक है बनाते हैं।

7

IMAP प्रोटोकॉल के साथ आप सब फ़ोल्डर उपयोग कर सकते हैं, और सेट संदेश स्थिति (देखा/अनदेखी), यह भी आप तत्काल सूचना के लिए निष्क्रिय सुविधा का उपयोग कर सकते हैं।

using(Imap imap = new Imap()) 
{ 
    imap.Connect("imap.server.com"); // or ConnectSSL for SSL 
    imap.Login("user", "password"); 

    imap.SelectInbox(); 
    List<long> uids = imap.Search(Flag.Unseen); 
    foreach (long uid in uids) 
    { 
     IMail mail = new MailBuilder() 
      .CreateFromEml(imap.GetMessageByUID(uid)); 
     Console.WriteLine(mail.Subject); 
    } 
    imap.Close(); 
} 

कृपया ध्यान दें कि इस वाणिज्यिक उत्पाद है कि मैं बना लिया है है:

Mail.dllपॉप 3, IMAP, एसएमटीपी एसएसएल समर्थन और शक्तिशाली माइम पार्सर के साथ घटक शामिल हैं।

आप https://www.limilabs.com/mail

0

में डाउनलोड कर सकते हैं आप इस का उपयोग कर MailBee.NET वस्तुओं कर सकते हैं: http://www.afterlogic.com/products/net-email-components

मैं वास्तव में IMAP का उपयोग करने के लिए सलाह देते हैं, वहीं विशेष रूप से के बाद से वह निष्क्रिय समर्थन यहाँ पहले ही उल्लेख किया प्रदान करता है, तो आप पीओपी 3 के साथ ऐसा ही कर सकता है।

http://www.afterlogic.com/wiki/Getting_notifications_about_new_messages_in_mailbox_%28IMAP_IDLE_and_polling%29

कृपया ध्यान दें कि मैं AfterLogic के साथ संबद्ध कर रहा हूँ, और मुझे आपकी सहायता करने के लिए आप किसी भी मदद की जरूरत है खुश हो जाएगा: वहाँ दोनों दृष्टिकोण का एक संक्षिप्त विवरण, और IMAP निष्क्रिय परिदृश्य के लिए एक पूर्ण नमूना है , हमारी वेबसाइट पर अनुरोध समर्थन विकल्प की जांच करें।

0

IMAPX2 सबसे अच्छा है। IMAP का उपयोग करके आप मेल सर्वर में फ़ोल्डर को नियंत्रित कर सकते हैं, एक ऐसी चीज जिसे आप पीओपी का उपयोग करने में सक्षम नहीं होंगे। IMAPX एक ओपन सोर्स कोड है जिसे आप देख सकते हैं, और उपयोग करने के लिए स्वतंत्र है।

IMAPX सीधे आगे और विश्वसनीय है।

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