ارسال بريد إلكتروني مع المرفقات في بيئة Asp.net



ارسال بريد إلكتروني مع المرفقات في بيئة Asp.net

العديد من الأوقات , نحن نواجه العديد من الحيثيات عند ارسال بريد إلكتروني من خلال خادم البريد , خاصة عندما يكون الموقع في استضافة مشتركة , والبريد سوف لن يصل إلى المستلم . هناك العديد من الأسباب وراء ذلك , في هذا المقال سوف نشرح كيف يتم ارسال البريد بمساعدة بيئة التطوير .NET Framework , وكيفية اكتشاف ومراجعة الكود إذا لم يصل البريد الالكتروني للمستلمين , هذا المقال سوف يغطي كيفية ارسال البريد بإستخدام تقنية ASP.NET 2.0 و لن تعمل على ASP.NET 1.0 .
ميكروسوفت أدخلت تحسينات على مكتية SMTP في بيئة التطوير .NET Framework 2.0 , وبناء على ذلك الكود الذي سيكون هنا لن يعمل في البيئة التطويرية .NET Framework
إرسال البريد في بيئة التطوير ASP.NET سهل جدا , بسيط وتستطيع ارسال البريد فقط بإستخدام خمسة أسطر من الكود . في ASP.NET , المكتبة المستخدم في ارسال البريد تسمى System.Net.Mail.SmtpClient , وبناء على ذلك سوف يحتاج الكود إلى أستيراد System.Net.Mail أو Using System.Net.Mail إلى الكود .
قبل البدء بإستخدام الكود في الأسفل , تأكد أنك تعلم العنوان الالكتروني أو اسم خادم السيرفر , يمكنك تحديد العنوان الالكتروني لخادم البريد بإستخدام الأمر telnet , فقط قم بكتابة telnet ipaddress 25 من خلال نافذة الدوس الموجودة في ويندوز .
لو حصلت على رد من الأمر السابق , بعد ذلك العنوان الالكتروني لخادم البريدبه خدمة SMTP وهي تعمل, أما اذا لم تبدأ الخدمة لن تستطيع استخدام خادم البريد لإرسال الرسائل . خادم SMTP يستمع إلى المنفذ 25 لذلك يجب أنت تحتاج أن تنفذ الأمر Telnet قبل ارسال البريد .
كود بسيط لإرسال بريد نصي في بيئة ASP.NET

 SmtpClient smtpClient = new SmtpClient("IPaddress");
MailMessage message = new MailMessage("sender@sender.com", "rcpt@recipient.com");
message.Subject = "Subject Email";
message.Body = "Body Email";
smtpClient.Send(message);

كما تشاهد هناك فقط 5 أسطر من الكود لإرسال البريد . وهذا كل ما تحتاج , برغم ذلك الكود السابق لن يعمل اذا كان خادم SMTP مضبوط مع الحماية , الكثر من خوادم البريد هذه الأيام تكون معدة بحماية SMTP لمنع الرسائل غير المرغوب فيها . حماية SMTP تعني أن قبل عملية ارسال البريد من خلال خادم الويب أنت تتحتاج إلى اسم مستخدم وكلمة مرور وهذا لمنع الرسائل الغير مرغوب فيها من المستخدمين غير الموثوق فيهم , وعادة ماتكون اسم المستخدم هو اسم البريد الخاص بك وكذلك كلمة المرور .

كود بسيط لإرسال بريد مكتوب بلغة HTM
 SmtpClient smtpClient = new SmtpClient("IPaddress");
MailMessage message = new MailMessage("sender@sender.com", "rcpt@recipient.com");
message.Subject = "Subject Email";
message.Body = "&lt;H2>Testing HTML Email</H2>";
message.IsBodyHtml = true;
smtpClient.Send(message);


كما تشاهد ارسال بريد HTML من بيئة .NET Framework سهل جدا , فقط ماعيك سوى وضع قيمة الخاصية IsBodyHtml إلى True .

كود بسيط لإرسال البريد بإستخدام ملف مرفق

 message.Attachments.Add(new Attachment(@"C:\Data.txt"));
حتى يحتوي البريد على ملف مرفق , أنت تحتاج فقط أن تضع الملف المرفق في رسالة البريد , قم بإضافة هذا الكود للكود السابق سوف يسمح لك بإرسال بريد . ارسال بريد خلال حماية SMTP !
في حالة استخدامك الكود السابق ولم يسمح لك بإرسال بريد , قد يكون السبب أنك ترسل البريد بإستخدام حماية SMTP .

 SmtpClient smtpClient = new SmtpClient("IPaddress");
MailMessage message = new MailMessage("sender@sender.com", "rcpt@recipient.com");
message.Subject = "Subject Email";
message.Body = "&lt;H2>Testing HTML Email</H2>";
message.IsBodyHtml = true;
smtpClient.Credentials = new NetworkCredentials("sender@sender.com","password");
smtpClient.Send(message);
كما تشاهد في الكود أعلاه , أنت تحتاج لتمرير اسم المستخدم وكلمة المرور قبل ارسال البريد , أرجو ملاحظة اسم المستخدم وكلمة المرور يجب أن تعود لخادم ويب , أو سوف يتم الرفض .

اكتشاف ومعالجة System.Net.Mail

بعض الملاحظات تساعدك اذا لم يصل البريد للهدف !

  • ´ تأكد أن SMTP سيرفر يستمع في المنفذ 25 .
  • ´ تأكد اذا كان SMTP سيرفر قد تم ضبط اعداداته بإستخدام حماية SMTP , اذا كان له حماية تأكد من اسم المستخدم وكلمة المرور

الخلاصة :
عملية ارسال البريد في ASP.NET سهلة جدا , شكرا لميكروسوفت على المكتبة الرائعة التي سهلت عملية ارسال البريد .




شارك الموضوع
تعليقات