أفضل طريقة لإرسال بريد إلكتروني من تطبيق .NET؟

StackOverflow https://stackoverflow.com/questions/57919

  •  09-06-2019
  •  | 
  •  

سؤال

أنا أعمل على تطبيق Windows Forms (.NET 3.5) الذي يحتوي على معالج استثناءات مضمن لالتقاط أي استثناءات قد تنشأ (لا سمح الله).أود أن يكون معالج الاستثناء قادرًا على مطالبة المستخدم بالنقر فوق a إرسال التقرير عن الخطأ الزر، والذي سيؤدي بعد ذلك إلى قيام التطبيق بإرسال بريد إلكتروني إلى عنوان بريدي الإلكتروني في FogBugz.

ما هي أفضل طريقة للقيام بذلك، وهل هناك أي "مشاكل" يجب الانتباه إليها؟

هل كانت مفيدة؟

المحلول

ستحتاج إلى استخدام فئة SmtpClient كما هو موضح هنا.
لا توجد أي مشاكل - إرسال البريد الإلكتروني هو أمر سهل للغاية.

نصائح أخرى

لا داعي للقلق بشأن بيانات اعتماد العميل، واستخدم SmtpClient فقط كما اقترح Esteban.ستحتاج إلى أن يقدم المستخدم عنوان url صالحًا لخادم Smtp عند التكوين، ولكن معظم مزودي خدمة الإنترنت يسمحون بـ smtp مجهول بشرط أن تكون على شبكتهم (أحد عملائهم) - طالما أن المستخدم يضع عنوان url لخادم smptp لمزودي خدمة الإنترنت الخاص بهم، فإن معظمهم لن يواجه الناس أي مشاكل.

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

<system.net>
   <mailSettings>
      <smtp deliveryMethod="Network" from="stuff@somewhere.com.au">
         <network host="smtp.somewhere.com.au" />
      </smtp>
   </mailSettings>
</system.net>

اسم المستخدم وكلمة المرور اختياريان.يعمل Intellisense مع هذه الأجزاء من ملف التكوين.

يحرر:تصحيح طفيف لمثال الكود الخاص بي.

في بيئة خاضعة للرقابة، سيكون استخدام SmtpClient هو الحل.ولكن على جهاز المستخدم، ستحتاج إلى خادم SMTP للإرسال من خلاله.

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

من الناحية المثالية، ستكون قادرًا على استخدام وكيل بريد المستخدم لإرسال البريد الإلكتروني.كنت أفكر أنك قد تكون قادرًا على صياغة وتنفيذ mailto:URL، لكنني لست متأكدًا مما إذا كان بإمكانك تحديد النص الأساسي أو أي مرفقات للرسالة.

لقد ذكرت أنك تستخدم Fogbugz.

يحاول http://www.fogcreek.com/FogBugz/docs/60/topics/customers/BugzScout.html?isl=59722أو http://www.fogcreek.com/FogBugz/blog/post/C-wrapper-for-the-FogBugz-API.aspx?isl=59722

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

فهو يوفر نقطة انطلاق جيدة.

قد ترغب أيضًا في التحقق من الطرف الثالث com.aspNetEmail المكتبة، التي تحتوي على الكثير من الميزات المفيدة التي تقدمها أعلى مما يقدمه لك System.Net.Mail.

ستحتاج إلى استخدام فئة SmtpClient كما هو موضح هنا.لا توجد أي مشاكل - إرسال البريد الإلكتروني هو أمر سهل للغاية.

واسعة النطاق الأسئلة الشائعة حول System.Net.Mail يقع هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top