في الإصدار الذي تم إصداره حديثًا من ASP.NET 2.0، لم تعد Microsoft توصي باستخدام مساحة الاسم System.Web.Mail واستبدالها بمساحة الاسم System.Net.Mail الجديدة. هناك العديد من الميزات الجديدة المقدمة في هذه المكتبة الجديدة، ولكن معها بعض الأخطاء البسيطة في طريقة إرسال رسائل البريد الإلكتروني.
1. إرسال البريد
قبل مناقشة هذه الأخطاء الصغيرة بالتفصيل، دعنا نلقي نظرة على نموذج للتعليمة البرمجية (نفترض أنك أضفت "باستخدام System.Net.Mail" في بداية الملف):
MailMessage msg = new MailMessage();
msg.From = new MailAddress(" [email protected] ", "اسم الشخص");
msg.To.Add(new MailAddress(" [email protected] ", "اسم المرسل إليه");
msg.To.Add(new MailAddress(" [email protected] ", "اسم المرسل إليه 2");
msg.Subject = "موضوع الرسالة";
msg.Body = "المحتوى الأساسي للبريد";
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;
SmtpClient c = new SmtpClient("mailserver.domain.com");
c.Send(msg);
لا يختلف الكود أعلاه كثيرًا عن التنفيذ في الإصدار السابق، باستثناء بعض التغييرات الطفيفة في تحديد الرسالة. بدلاً من إنشاء عنوان بنفسك، يمكنك السماح للنظام بالقيام بذلك نيابةً عنك. إذا قمت بتحديد عنوان بريد إلكتروني واسم، فسيتم عرض ما يلي تلقائيًا في الرسالة:
"اسم الشخص" < [email protected] >
هذا هو التنسيق "الصحيح" لعنوان البريد الإلكتروني. بالطبع، يمكنك أيضًا إضافة عناوين متعددة إلى مجموعات "إلى" و"نسخة إلى" و"نسخة مخفية الوجهة" بنفس الطريقة المذكورة أعلاه تمامًا. يعد إرسال عدد كبير من الرسائل برمجيًا بهذه الطريقة أسهل بكثير من إرسال كل رسالة على حدة - ما عليك سوى إضافة عناوين متعددة إلى سمة نسخة مخفية الوجهة لتحقيق إرسال بريدي جماعي.
2. المشاكل الموجودة
الآن، دعونا نحلل الأخطاء الصغيرة الموجودة.
كما ذكرنا سابقًا، تأتي مساحة الاسم الجديدة هذه مع بعض الأخطاء الطفيفة. الأول هو أنه عند إرسال بريد إلكتروني، تتم إضافة معلومات الرأس بالكامل بأحرف صغيرة. ومع ذلك، فإن مواصفات RFC لرسائل البريد الإلكتروني SMTP لا تحدد كيفية كتابة رؤوس البريد الإلكتروني بأحرف كبيرة؛ ومع ذلك، فإن العديد من برامج تصفية البريد العشوائي تقيد رسائل البريد الإلكتروني التي لا تتم كتابة رؤوسها بشكل صحيح.
خطأ آخر يتعلق بإعدادات الأولوية - باستخدام إعدادات الأولوية، يمكن للمستخدمين تحديد أهمية الرسالة في عميل البريد. نظرًا للطريقة التي تم بها تنسيق رأس البريد الإلكتروني (تحويله إلى أحرف صغيرة)، فإن برنامج البريد الإلكتروني الخاص بي (Eudora) لا يتعرف على علامة الأولوية المقابلة، وبالتالي لا يضع علامة على هذا البريد الإلكتروني على أنه مهم على وجه التحديد. على الرغم من أن هذا قد يبدو تافهًا، إلا أنه يبدو أنه لا يوجد سبب واضح للتبديل إلى إصدار جديد من System.Web.Mail.
لذلك، سأستمر في استكشاف هذه المشكلة إذا لم أتمكن حقًا من العثور على علاج جيد، فسأعود إلى System.Web.Mail السابق لحل مشكلة التحذير المذكورة أعلاه بشكل أكثر فعالية.