لقد رأيت للتو مقالًا حول إرسال رسائل البريد الإلكتروني في .NET "إرسال رسائل البريد الإلكتروني من صفحات asp.net" ورأيت أن الفئات الموجودة ضمن مساحة الاسم System.Web.Mail لا تزال مستخدمة. نعلم جميعًا أنه في ظل .NET 1.1، يتم استخدام معظم الفئات في مساحة الاسم هذه لإرسال رسائل البريد الإلكتروني. باستخدام طريقة الإرسال الثابتة لـ SmtpMail، يمكن إرسال رسائل البريد الإلكتروني بسهولة، ولكن نظرًا لأن هذه الفئة تستدعي العمليات على نظام التشغيل Windows 2000 والإصدارات الأحدث، فإن مكون CDO في النظام يتم استخدامه لإرسال رسائل البريد الإلكتروني. بغض النظر عن الخطأ، فإنه سيطالبك بعدم الوصول إلى كائن CDO.Message أو استثناءات CDO.Message الأخرى. لا يمكننا الحصول على معلومات استثناء مفصلة للغاية، مما يسبب إزعاجًا كبيرًا لتصحيح الأخطاء. خاصة عندما نحتاج إلى التحقق من Smtp، يتعين علينا إضافة ثلاثة تعريفات لرأس البريد إلى MailMessage، وهو أمر مزعج نسبيًا. حسنًا، في ظل .NET 2.0، تم تصميم وظيفة إرسال رسائل البريد الإلكتروني بشكل جيد للغاية، حيث يتيح لنا استخدام الفئات الموجودة في مساحة System.Net.Mail إرسال رسائل بريد إلكتروني متنوعة بكل بساطة. ومع ذلك، لكي تكون متوافقة مع الإصدار الأصلي، لم يتم حذف مساحة System.Web.Mail، كما تم أيضًا وضع علامة على الفئات الموجودة في هذه المساحة على أنها قديمة. إذا كنت تستخدم فئات .NET 2.0 للتجميع، فسوف تكون كذلك مطالبتك باستخدام فئة المساحة System.Web.Mail بدلاً من ذلك.
الآن دعونا نلقي نظرة على ما يجب القيام به لإرسال رسائل البريد الإلكتروني. لقد عثرت هنا أيضًا على مقالة في الحديقة حول إرسال رسائل البريد الإلكتروني .NET 2.0، "مكون إرسال البريد الإلكتروني استنادًا إلى مساحة الاسم .NET 2.0 System.Net.Mail". إرسال واستقبال البريد. في هذه المقالة، سنناقش فقط كيفية إرساله، وأشعر أنه لا يستخدم ملف التكوين حقًا. نحتاج أيضًا إلى تحديد بعض معلومات حساب Stmp لـ SmtpClient بأنفسنا. في الواقع، نحتاج فقط إلى تكوين حساب Smtp الذي سنستخدمه من خلال web.config (أو app.config):
<. smtp من =" [email protected] ">
< /system.net>
نظام التكوين الخاص بـ .NET 2.0 قوي جدًا بحيث يمكننا كتابة التكوين أعلاه بكل بساطة دون الرجوع إلى أي معلومات. كما هو مذكور أعلاه، السمة from هي صندوق البريد الذي سترسل منه البريد الإلكتروني، والمضيف هو عنوان خادم SMTP. وغني عن القول، يجب ملاحظة كلمة المرور والمنفذ واسم المستخدم أما بالنسبة لبيانات الاعتماد الافتراضية، فيجب عليك الانتباه عندما لا نحتاج إلى خادم SMTP للتحقق من المستخدم المرسل، قم بتعيينه على خطأ، وإلا قم بتعيينه على صواب. تتطلب معظم خوادم SMTP الحالية مصادقة المستخدم، لذا قم بتعيينه بشكل عام على صواب واتركه يستخدم اسم المستخدم وكلمة المرور قمنا بتكوينها للتحقق مما إذا كان مستخدمًا شرعيًا.
بعد كتابة ملف التكوين، فإن الخطوة التالية هي كيفية الاتصال بالبرنامج. بعد أن أكتب ما يلي لإرسال البريد الإلكتروني، ستشعر بالغرابة. هل الأمر بهذه البساطة حقًا؟ نعم، الأمر بهذه البساطة، دعنا نلقي نظرة:
MailMessage m_message = new MailMessage();
m_message.From =MailAddress(" [email protected] ");
"));
m_message.Subject = "إرسال البريد باستخدام .NET 2.0";
m_message.Body = "بسيط جدًا";
SmtpClient m_smtpClient = new SmtpClient();
m_smtpClient.Send(m_message);
ليس لدينا حتى رسالة إضافية واحدة سطر من التعليمات البرمجية، وهو إنشاء كائن MailMessage، ثم إنشاء SmtpClient واستخدامه لإرسال رسائل البريد الإلكتروني مباشرة. بالمقارنة مع الطريقة الثابتة الأصلية، لا يوجد المزيد من التعليمات البرمجية. قد يرغب بعض الأصدقاء هنا في السؤال؟ من أين تأتي معلومات حساب SMTP؟ في الواقع، يمكنك تصحيحه في هذا الوقت، والسمات الموجودة في كائن m_smtpClient هي القيم التي تم تكوينها في ملف التكوين السابق الخاص بنا. عند إعادة تكوين SmtpClient، ستتم قراءة القيمة الموجودة ضمن قسم تكوين system.net تلقائيًا. إذا قام المستخدم بتكوين معلومات SMTP، فسيتم نقلها تلقائيًا إلى كائن SmtpClient الحالي، ثم يتم استخدامها لإرسال رسائل البريد الإلكتروني. إن إرسال البريد الإلكتروني في .NET 2.0 يتطلب الكثير من العمل، كما أنه مستقر للغاية.
ملخص: على الرغم من أنه ضمن .NET 2.0، فإنه من السهل جدًا استخدام System.Web.Mail لإرسال رسائل البريد الإلكتروني، ويمكنك الحصول على معلومات استثناء أكثر تفصيلاً عند حدوث أخطاء، ولكن في بعض الأحيان يمكن أن تجعلك المشاكل في حيرة من أمرك. الشيء الأكثر شيوعًا الذي يحدث هو أنه عندما يكون جهازك مزودًا بجدار حماية مضاد للفيروسات، فقد لا تتمكن من إرسال رسائل البريد الإلكتروني، ولكن الرسالة السريعة تمنعك من تشخيص المشكلة، والتأثير الرئيسي هو رفض البريد الإلكتروني. يحدث هذا الموقف لأن جدار الحماية يرفض استخدامنا للمنفذ 25، مما يؤدي إلى عدم القدرة على الاتصال بشكل طبيعي مع خادم SMTP. الحل هو إغلاقه وأعتقد أن هناك حالات كثيرة على الإنترنت. هناك نقطة أخرى يجب الانتباه إليها بشكل خاص وهي أن الجهاز الذي يرسل رسائل البريد الإلكتروني يجب أن يكون متصلاً مباشرة بالشبكة الخارجية نظرًا لأن الشركة تصل إلى الإنترنت من خلال وكيل، وهذا أمر مثير للإعجاب بشكل خاص. هناك شيء آخر يجب ملاحظته في الكود أعلاه. يجب أن تكون قيمة "من" لكائن MailMessage هي نفس قيمة "من" في ملف التكوين. يبدو أنه ليست هناك حاجة لتعيينها هنا.
حسنًا، إليك الرمز، آمل أن يكون مفيدًا لك http://hjf1223.cnblogs.com/archive/2006/07/06/444716.html