ما هي أفضل طريقة لإرسال دفعات كبيرة من رسائل البريد الإلكتروني في ASP.NET?

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

  •  09-06-2019
  •  | 
  •  

سؤال

أنا حاليا حلقات خلال datareader و استدعاء النظام.صافي.البريد.SmtpClient نرسل طريقة ().المشكلة مع ذلك هو أنه بطيء.كل البريد الإلكتروني يستغرق حوالي 5-10 ثانية لإرسال (فمن الممكن أن هذا هو مجرد مشكلة مع بلدي المضيف).كنت قد تجاوز executionTimeout الافتراضي في شبكة الإنترنت.ملف التكوين (ومن التخلف إلى 90 ثانية) مثل هذا:

 <httpRuntime executionTimeout="3000" />

التحذير واحد:أنا مشترك المضيف, لذلك أنا لا أعتقد أنه من الممكن بالنسبة لي أن أرسل باستخدام PickupDirectoryFromIis الخيار (على الأقل أنه أعطاني الأخطاء عندما التفت عليه).

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

المحلول

يمكنك أن ترسل البريد غير متزامن.بهذه الطريقة مهلة لا ينبغي أن يقطع الإرسال.

هذه المادة ينبغي أن تساعدك على الشروع في ذلك: إرسال رسائل البريد الإلكتروني بشكل غير متزامن في C#.

هناك نهج آخر هنا: http://www.vikramlakhotia.com/Sending_Email_asynchronously_in_AspNet_20.aspx

و بالطبع هناك العديد من الشركات التجارية المتاحة ، ولكن الوحيدة التي حاولت ويمكن أن يوصي هو http://www.aspnetemail.com/

نصائح أخرى

بالتأكيد تفرخ تشغيله على خلفية العملية المنفذة حتى أنها تخرج بشكل غير متزامن.

راجع للشغل, 5-10 ثواني في البريد الإلكتروني يبدو طريقة بطيئة بالنسبة لي.على الخادم فإنه يأخذ فقط أجزاء من الثانية في البريد الإلكتروني.

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