توصيات لمكون .NET للوصول إلى صندوق البريد الإلكتروني [مغلق]

StackOverflow https://stackoverflow.com/questions/18006

  •  09-06-2019
  •  | 
  •  

سؤال

لقد طُلب مني كتابة خدمة Windows في C# لمراقبة صندوق البريد الإلكتروني بشكل دوري وإدراج تفاصيل أي رسائل مستلمة في جدول قاعدة البيانات.

غريزتي هي القيام بذلك عبر بروتوكول POP3 ومن المؤكد أن البحث في Google عن "مكون .NET POP3" ينتج عنه عدد لا يحصى من النتائج (حسنًا، 146000).

هل قام أي شخص بشيء مماثل من قبل وهل يمكنك التوصية بمكون لائق لن يكسر البنك (بحد أقصى بضع مئات من الدولارات)؟

هل ستكون هناك أي فوائد لاستخدام IMAP بدلاً من POP3؟

هل كانت مفيدة؟

المحلول

أنا أوصي شيلكات.لديهم مكونات مستقرة جدًا، ويمكنك الحصول على مكون البريد الإلكتروني الخاص بهم بسعر رخيص يصل إلى 99 دولارًا لمطور واحد.شخصيًا، أعتقد أن استخدام مجموعة المكونات الكاملة هو صفقة أفضل، حيث تبلغ تكلفتها 289 دولارًا فقط، وتأتي مع العديد من المكونات المفيدة.أنا لا أنتمي إليهم بأي شكل من الأشكال، على الرغم من أنني ربما أبدو كذلك.

نصائح أخرى

مع بروتوكول IMAP يمكنك الوصول المجلدات الفرعية, ، و ضبط حالة الرسالة (مرئي/غير مرئي)، كما يمكنك استخدامه عاطل ميزة الإخطارات الفورية.

Mail.dll يشمل بوب3, الوصول عبر IMAP, SMTP المكونات مع طبقة المقابس الآمنة الدعم ومحلل MIME القوي:

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();
}

يرجى ملاحظة أن هذا منتج تجاري قمت بإنشائه.

يمكنك تنزيله على https://www.limilabs.com/mail

أستخدم برنامج SharpMimeTools المجاني والمفتوح المصدر في تطبيقي BugTracker.NET.لقد كان يمكن الاعتماد عليه للغاية:

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

راجع الملفات POP3Client.cs وPOP3Main.cs وinsert_bug.aspx

أوصي الذكاء المتقدم.هناك مكونات لـ POP3 وIMAP (ASPNetPOP3 وASPNetIMAP).نوعية جيدة ودعم سريع الاستجابة - أتذكر أنني تلقيت ردودًا على أسئلتي في عطلة نهاية الأسبوع.

قد ترغب في التحقق من لدينا مكون بريد Rebex.ويشمل الوصول عبر IMAP, SMTP, بوب3 البروتوكولات و و S/MIME محلل.

ال POP3 ليس لديه مفهوم الرسائل "غير المقروءة" أو البحث عن الرسائل المطابقة لمعايير محددة. POP3 ما عليك سوى إرجاع جميع الرسائل الموجودة في صندوق الوارد الخاص بك.

استخدام IMAP يمكنك توجيه خادم IMAP لإرسال الرسائل غير المقروءة إليك، والرسائل التي وصلت منذ وقت محدد، والرسائل من مستخدم محدد وما إلى ذلك.لا يتعين عليك تنزيله بالكامل إلى العميل وإجراء التصفية هناك.

يوضح الكود التالي كيفية تنزيل الرسائل غير المقروءة من Imap الخادم باستخدام Rebex.Net.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

إذا كنت تستخدم تطبيق POP3 مفتوح المصدر أو أي شيء متاح مجانًا، فسيكون لديك حق الوصول لتعديل الكود وتوسيعه في الاتجاه المطلوب.نتج عن Google السريع هذا C# كود POP3 من Code Project لاسترداد الرسائل.

هناك شيء يمكّنك من التدوير بنفسك، أو على الأقل توسيعه.

alt text

لوميسوفت مفتوح المصدر ويتضمن عملاء IMAP وPOP (من بين أشياء أخرى).لقد كنت أستخدمها لسنوات دون أي مشاكل.

ماذا عن صندوق رأس المال العامل؟انه مجانا.

إذا كان لديك خادم Exchange:http://msdn.microsoft.com/en-us/library/bb397812.aspx

مثال لpop3:http://bartdesmet.net/blogs/bart/archive/2006/09/13/4417.aspx

تبلغ تكلفة C#Mail 0 دولارًا أمريكيًا ولكنها أيضًا مرخصة من GNU GPL، لذا تأكد من موافقتك على ذلك.

يمكنك القيام بذلك باستخدام كائنات MailBee.NET: http://www.afterlogic.com/products/net-email-components

على الرغم من أنني أوصي باستخدام IMAP بالفعل، لا سيما أنه يوفر دعم IDLE المذكور هنا بالفعل، إلا أنه يمكنك فعل الشيء نفسه مع بروتوكول POP3.يوجد وصف مختصر لكلا الطريقتين، ونموذج كامل لسيناريو IMAP IDLE:

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

يرجى ملاحظة أنني تابع لشركة AfterLogic، وسيكون من دواعي سروري مساعدتك إذا كنت بحاجة إلى أي مساعدة، تحقق من خيار طلب الدعم على موقعنا.

IMAPX2 هو الأفضل.باستخدام IMAP، يمكنك التحكم في المجلدات الموجودة في خادم البريد، وهو أمر لن تتمكن من القيام به باستخدام بروتوكول POP.IMAPX هو كود مفتوح المصدر يمكنك الاطلاع عليه، وهو مجاني للاستخدام.

IMAPX هو برنامج مستقيم وموثوق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top