سؤال

عندما أنا إنشاء مستخدم أجل تطبيق ويب, SMTP البريد الإلكتروني (باستخدام ASP.NET's SmtpClient) يتم إرسالها إلى المستخدم مع تلقائيا توليد كلمة السر.ومع ذلك ، في بعض الأحيان ما لاحظت هو أنه مرات الجديد المستخدم ببساطة لن تتلقى البريد الإلكتروني مع كلمة المرور.

حسنا سوف عرض رسالة تشير إلى أن البريد لم تذهب من خلال ولكن إنشاء المستخدم.

ولذلك sys admin لديها 2 خيارات حتى الآن:

  1. إعادة تعيين كلمة مرور المستخدم والأمل آخر SMTP إرسال البريد الإلكتروني مع كلمة مرور تم إنشاؤها تلقائيا.
  2. حذف ثم إعادة إنشاء المستخدم.

لا يمكن التراجع على إنشاء المستخدم إذا smtp لا يتم إرسالها ولكن ما هي أفضل الممارسات لمعالجة هذه المشكلة ؟

أنا أفكر أنني يجب إعادة محاولة إرسال البريد الإلكتروني 3 مرات مع مهلة الفترة من 5 ثوان لكل منهما.حتى 15 ثانية سيكون أسوأ سيناريو.

هل هذا هو الطريق للذهاب ؟

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

المحلول

حسنا, اعتمادا على النظام الأساسي الخاص بك, إذا كان يمكنك فقط تسليم البريد الخاص بك إلى MTA المحلي ، ينبغي التعامل مع هذه المحاولات.البرنامج يمكن أن مجرد طابور البريد والانتقال, لا تقلق بشأن التعامل مع مهلات graylists.... الخ

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

هذا بالطبع قد لا يكون ممكنا في بعض الأنظمة ، اعتمادا على ما يمكن القيام به مع غير مؤكدة المستخدم حقا يتوقف على ما كنت تسمح للناس أن تفعل قبل البريد الإلكتروني التحقق من صحة.

نصائح أخرى

يبدو التطبيق الويب الخاص بك يتحدث SMTP مباشرة إلى المستخدم الخاص بك على خادم البريد.[التطبيق الويب الخاص بك هو MUA (البريد وكيل المستخدم) الحديث المستخدم MTA (Mail Transfer Agent).] لا شيء يقول أن المستخدم MTA يجب أن تكون قابلة للوصول أو العامل في هذه اللحظة.تحتاج إلى تشغيل الخاص MTA لذا عليك التأكد من أن الشخص هو توفير الطوابير, المحاولات, الخ.

إذا كنت تريد حقا أن انحنى إلى الوراء, هل يمكن أن تفعل ما تفعله (محاولة واحدة فقط على الرغم من) ، تراجع الطوابير الرسالة و الاستمرار في المحاولة على أبطأ الجدول الزمني لمدة 24 ساعة على الأقل ، وفضح التي لم تنته الدولة إلى المستخدم.

الجواب الرسمية على كيفية التطبيق الخاص بك من المفترض أن تتصرف يمكن العثور عليها في RFC1123 (متطلبات مضيفي الإنترنت - التطبيقات و الدعم):

5.3.1.1 إرسال استراتيجية

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

المرسل يجب أن تأخير إعادة محاولة وجهة معينة بعد واحد المحاولة فشلت.في العام ، الفاصل الزمني لإعادة المحاولة يجب أن تكون على الأقل 30 دقيقة ؛ بيد أن أكثر تطورا و متغير استراتيجيات سوف يكون مفيد عندما يكون المرسل-SMTP تحديد سبب غير تسليم.

المحاولات تستمر حتى رسالة المنقولة أو المرسل يعطي ؛ لإعطاء الوقت عموما يحتاج إلى على الأقل 4-5 أيام.المعلمات إلى إعادة المحاولة الخوارزمية يجب أن تكون شكلي.

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

كيف يمكنك الكشف عن أن البريد لم يكن تسليمها ؟ ما هي "مهلة" ؟

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

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

IMHO يجب أن يخطر المستخدم ، طالبا منه التحقق من البريد الإلكتروني, بدون المحاولات.

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

معظم حالات مهلة قد يكون سببه غير صالحة حسابات البريد الإلكتروني.المستخدمين إما خطأ أو أعطيتك غير موجودة البريد الإلكتروني addressto تجنب المتطفلة.

إذا كان ذلك ممكنا ، لا تسأل عن المستخدمين رسائل البريد الإلكتروني.Yأنه القاعدة رقم واحد من البرمجة يجب أن تكون:لا تزعج المستخدم.

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