سؤال

كيف يمكنني قراءة رسالة بريد إلكتروني واردة برمجيًا باستخدام .NET.أحتاج إلى طريقة لأخذ محتوى رسالة البريد الإلكتروني (في هذه الحالة XML) على خادم POP وقراءتها في تطبيقي.

ومن الناحية المثالية يمكن حل هذا عن طريق:

  • .NET Code التي يمكنني تشغيلها كمهمة خلفية على خادم الويب الخاص بي لمعالجة البريد الإلكتروني.
  • خدمة يمكنها نشر محتويات البريد الإلكتروني إلى خادم الويب الخاص بي.

على الرغم من أنني منفتح على الخيارات الأخرى.

يحرر:منقول من "عدم الإجابة":

حاليًا ، نبحث في استخدام حسابات البريد الإلكتروني التي توفرها شركة الاستضافة الخاصة بنا.

يمكن أن يكون خادم البريد الخاص بنا خيارًا ، ولكنه شيء نحتاجه للاتصال بالمضيف.

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

المحلول

لقد قمنا بالفعل بتنفيذ نفس النوع من الأشياء.

نقوم بمعالجة محتوى رسائل البريد الإلكتروني وإرسال البيانات إلى إدارة علاقات العملاء لدينا عبر خدمة الويب.نستخدم لغة C# مع .net 3.5

لمعالجة البريد استخدمنا IMap .هناك عدد قليل من مكتبات عملاء .net على CodeProject.أعتقد أننا استخدمنا واحد من LumiSoft .

لقد جربنا WebDav ولكن لم يحالفنا الحظ كثيرًا.هذا ترك لنا Pop3 أو IMap.يدعم IMap المجلدات التي نحتاجها، لذلك قمنا بذلك.أنا متأكد من أنه سيكون من السهل القيام بنفس الشيء مع بروتوكول POP3 إذا كان خادمك لا يدعم IMap.

نقوم في الأساس بتوصيل خادم Exchange الخاص بنا كل ساعة ونسحب أي بريد إلكتروني جديد ونعالجه.حتى الآن أنها تعمل بشكل جيد.

يحرر:نحن نستخدم أيضا SharpMimeTools للحصول على رسائل البريد الإلكتروني الأولية بتنسيق أكثر قابلية للاستخدام.

نصائح أخرى

هناك عدد غير قليل من الخيارات، في حالة وجود ناقل خدمة تحت تصرفك، فهو يأتي في الغالب مزودًا بمحول pop3.

أو يمكنك استخدام واجهة برمجة التطبيقات pop3 (البريد السهل من Quiksoft هو خيار جيد جدًا).كما أن لديها منتجًا رائعًا لمعالجة الارتدادات.

لقراءة كافة رسائل SMTP.إذا كنت تمتلك خادم البريد، فاعتمادًا على نوع الخادم، هناك طرق أخرى للوصول إلى الرسائل، وأحيانًا APIs والمكونات الإضافية المخصصة، أو نظام الملفات.هل تستضيف خادم البريد الخاص بك؟ما هو خادم البريد الذي تستخدمه؟

إذا كان ذلك ممكنًا، فلن أختار بروتوكول POP، فهو يحتوي على بعض القيود من بين أشياء أخرى مثل وجود مجلد واحد فقط، و"الحصول على/قراءة" الرسالة يزيل الرسالة من المجلد (مما يعني عملية واحدة لقراءة الرسائل) وأشياء أخرى .اعتمادًا على عدد رسائل البريد الإلكتروني التي تحتاج إلى تحليلها، قد يظل هذا الأمر مناسبًا لك.سيكون IMAP بمثابة تحسن بالفعل.

باستخدام مكون Quiksoft IMAP:

//create a new IMAP4 object, connect 
//to a IMAP4 server and login 
IMAP4 imap = new IMAP4();
imap.Connect("mail.yourdomain.com");
imap.Login("mailbox", "password");

//select the inbox and download the envelopes
imap.SelectMailbox("Inbox");
EnvelopeCollection imapEnvelopes;
imapEnvelopes = imap.GetEnvelopes();

//loop through each message
//and output the subject
foreach (Envelope imapEnvelope in imapEnvelopes)
{
   //write the subject out to the console
   Console.WriteLine(imapEnvelope.Subject);
}

//close resources
imap.Logout();

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

نستخدمها للتعامل مع إحصائيات المعالجة من تحليلات جوجل والارتداد من خوادم البريد الأخرى.

يمكنك دائما DIY فئة بوب 3يعد بروتوكول POP أحد أسهل البروتوكولات

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