توصيات لمكون .NET للوصول إلى صندوق البريد الإلكتروني [مغلق]
سؤال
لقد طُلب مني كتابة خدمة 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 لاسترداد الرسائل.
هناك شيء يمكّنك من التدوير بنفسك، أو على الأقل توسيعه.
لوميسوفت مفتوح المصدر ويتضمن عملاء 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:
يرجى ملاحظة أنني تابع لشركة AfterLogic، وسيكون من دواعي سروري مساعدتك إذا كنت بحاجة إلى أي مساعدة، تحقق من خيار طلب الدعم على موقعنا.
IMAPX2 هو الأفضل.باستخدام IMAP، يمكنك التحكم في المجلدات الموجودة في خادم البريد، وهو أمر لن تتمكن من القيام به باستخدام بروتوكول POP.IMAPX هو كود مفتوح المصدر يمكنك الاطلاع عليه، وهو مجاني للاستخدام.
IMAPX هو برنامج مستقيم وموثوق.