ارتدادات البريد الإلكتروني وإشعارات التسليم

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

C# .NET API للتعامل مع ارتدادات البريد الإلكتروني وإشعارات التسليم

لإدارة ارتدادات البريد الإلكتروني وإشعارات التسليم بكفاءة في C# .NET، سنستخدم مكتبة Aspose.Email، التي توفر مجموعة شاملة من الأدوات والوظائف للمهام المتعلقة بالبريد الإلكتروني. Aspose.Email لـ .NET. يمكنك استخدام إمكانات واجهة برمجة التطبيقات (API) إما عن طريق الحصول على مكتبة الارتباط الحيوي (DLL) الخاصة بها من خلال download أو تثبيتها من NuGet باستخدام الأمر التالي:

PM> Install-Package Aspose.Email

إرسال بريد إلكتروني مع إشعارات التسليم

يوضح مقتطف الكود أدناه كيفية إنشاء رسالة بريد إلكتروني وإعداد إشعارات التسليم باستخدام Aspose.Email. يتيح لك هذا الرمز إنشاء رسالة بريد إلكتروني وتحديد عناوين المرسل والمستلم وتكوين إشعارات التسليم للنجاح والفشل. بالإضافة إلى ذلك، فإنه يضيف رؤوس MIME إلى الرسالة لتتبع أكثر شمولاً. يقوم الكود بالخطوات التالية:

  1. إنشاء رسالة بريد إلكتروني جديدة: يبدأ الرمز بإنشاء كائن MailMessage جديد. MailMessage هي فئة تمثل رسالة eml التي يمكن إرسالها.

  2. تعيين إشعارات التسليم: تم تعيين DeliveryNotificationOptions ليكون OnSuccess وOnFailure. وهذا يعني أن المرسل يرغب في تلقي تقرير التسليم إذا تم تسليم الرسالة بنجاح أو إذا فشل التسليم.

  3. إضافة رؤوس MIME لإشعارات القراءة والتخلص: يتم استخدام رؤوس كائن الرسالة لإضافة رؤوس “Read-Receipt-To” و"Disposition-Notification-To" مع البريد الإلكتروني للمرسل. تطلب هذه الرؤوس إشعارات القراءة والتخلص من عنوان البريد الإلكتروني للمرسل عند استلام البريد الإلكتروني ومعالجته بواسطة المستلم، على التوالي.

  4. إعداد عميل SMTP: يتم استخدام فئة SmtpClient لإرسال رسائل البريد الإلكتروني. يتم إنشاء مثيل لهذه الفئة باستخدام بيانات اعتماد المضيف والمستخدم المحدد.

  5. إرسال الرسالة: أخيرًا، يتم استدعاء الأسلوب إرسال لكائن SmtpClient باستخدام كائن MailMessage كوسيطة لإرسال البريد الإلكتروني.

// قم بإنشاء الرسالة
MailMessage msg = new MailMessage();
msg.From = "sender@sender.com";
msg.To = "receiver@receiver.com";
msg.Subject = "the subject of the message";

// قم بتعيين إشعارات التسليم للرسائل الناجحة والفاشلة وأضف رؤوس MIME
msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.OnFailure;
msg.Headers.Add("Read-Receipt-To", "sender@sender.com");
msg.Headers.Add("Disposition-Notification-To", "sender@sender.com");

// أرسل الرسالة
SmtpClient client = new SmtpClient("host", "username", "password");
client.Send(msg);

التعامل مع ارتدادات البريد الإلكتروني

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

  1. يبدأ الكود بإنشاء مثيل للفئة MailMessage لتحميل رسالة البريد الإلكتروني من الملف المحدد باستخدام الأسلوب Load.

  2. ثم يتحقق مما إذا كان البريد الإلكتروني قد تم ارتداده عن طريق استدعاء الأسلوب CheckBounced. يتم تخزين نتيجة هذه العملية في كائن BounceResult.

  3. يتابع الكود بعد ذلك طباعة اسم الملف إلى وحدة التحكم لتوفير المعلومات التفصيلية حول الرسالة من خلال الخصائص التالية:

MailMessage mail = MailMessage.Load(fileName);
BounceResult result = mail.CheckBounced();
Console.WriteLine(fileName);
Console.WriteLine("IsBounced : " + result.IsBounced);
Console.WriteLine("Action : " + result.Action);
Console.WriteLine("Recipient : " + result.Recipient);
Console.WriteLine();
Console.WriteLine("Reason : " + result.Reason);
Console.WriteLine("Status : " + result.Status);
Console.WriteLine("OriginalMessage ToAddress 1: " + result.OriginalMessage.To[0].Address);
Console.WriteLine();

خاتمة

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

للحصول على معلومات أكثر تفصيلاً أو ميزات أخرى لـ Aspose.Email for .NET يمكنك معالجة [الوثائق] الخاصة بنا 17. في حال كانت لديك أسئلة أو واجهت أي صعوبات، قم بزيارة منتدانا.

أنظر أيضا