ارسال بريد إلكتروني مع المرفقات في بيئة 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);
كود بسيط لإرسال بريد مكتوب بلغة HTM
SmtpClient smtpClient = new SmtpClient("IPaddress");
MailMessage message = new MailMessage("sender@sender.com", "rcpt@recipient.com");
message.Subject = "Subject Email";
message.Body = "<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 = "<H2>Testing HTML Email</H2>";
message.IsBodyHtml = true;
smtpClient.Credentials = new NetworkCredentials("sender@sender.com","password");
smtpClient.Send(message);
اكتشاف ومعالجة System.Net.Mail
بعض الملاحظات تساعدك اذا لم يصل البريد للهدف !
الخلاصة :
عملية ارسال البريد في ASP.NET سهلة جدا , شكرا لميكروسوفت على المكتبة الرائعة التي سهلت عملية ارسال البريد .
بعض الملاحظات تساعدك اذا لم يصل البريد للهدف !
- ´ تأكد أن SMTP سيرفر يستمع في المنفذ 25 .
- ´ افحص اذا كان خادم الويب ممنوع http://mxtoolbox.com/blacklists.aspx
- ´ تأكد اذا كان SMTP سيرفر قد تم ضبط اعداداته بإستخدام حماية SMTP , اذا كان له حماية تأكد من اسم المستخدم وكلمة المرور
الخلاصة :
عملية ارسال البريد في ASP.NET سهلة جدا , شكرا لميكروسوفت على المكتبة الرائعة التي سهلت عملية ارسال البريد .