خيار إلغاء الاشتراك في البريد الإلكتروني باستخدام C# [مغلق

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

  •  29-07-2022
  •  | 
  •  

سؤال

لقد أرسلت بريدًا إلكترونيًا من C# وهم يعملون بشكل جيد ، لكنني الآن أبحث أيضًا عن الوظيفة للسماح للمستقبل بإلغاء الاشتراك. أنا غير قادر على الحصول على كيفية المتابعة حيث ليس لدي أي فكرة. أنا googled بما فيه الكفاية لذلك بحاجة إلى بعض التلميحات.

أدناه هو رمز بلدي:

  MailMessage loginInfo = new MailMessage();
  loginInfo.To.Add(EmailTxt.Text.ToString());
  loginInfo.From = new MailAddress(sEmailId);
  loginInfo.Subject = "Subject";
  loginInfo.Body = "Your username is: " +;
  loginInfo.IsBodyHtml = true;

  SmtpClient smtp = new SmtpClient();
  smtp.Host = sHost;
  smtp.Port = 25;
  smtp.EnableSsl = false;
  smtp.Credentials = new System.Net.NetworkCredential("", "");
  smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
  smtp.Send(loginInfo); 
هل كانت مفيدة؟

المحلول

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

يرجى اتباع الخطوات أدناه:

الخطوة 1: قم بإنشاء عمود إضافي في جدول المستخدم كما unsubscribe في قاعدة البيانات. سوف تستغرق true أو false كقيم. تعيين الافتراضي ل false بحيث يحصل كل مستخدم مشترك على البريد الإلكتروني.

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

الخطوة 2: قم بإنشاء عنوان URL إلغاء الاشتراك على النحو التالي:

http://mywebsite.com/unsubscribeme/emailID=xyz@gmail.com

الخطوه 3: أرسل عنوان URL هذا إلى USER كعنوان URL إلغاء الاشتراك بحيث يكون كلما شعر بإلغاء الاشتراك ، يمكنه فعل ذلك ببساطة من خلال النقر على عنوان URL هذا.

Step4: بمجرد أن ينقر المستخدم على عنوان URL المعطى ، اقرأ قيمة QueryString لـ EmailID emailID=xyz@gmail.com

Step5: قم بتحديث معلومات جدول المستخدم عن طريق ضبط unsubscribe قيمة العمود ل true.

مثال :

 //get user EmailID by QueryString as below:
 String EmailID=Reques.QueryString["emailID"].ToString();

//Update the usertable as below:
String Command ="update usertable set unsubscribe='true' where emailid='"+EmailID+"'";

نصائح أخرى

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

لا علاقة له بفئة SMTPClient.

يتضمن مفهوم القائمة البريدية قائمة بعناوين البريد الإلكتروني ، وعادة ما يتم حفظها في قاعدة بيانات. الرمز الخاص بك يضيف المتلقي من "البريد الإلكتروني" ، أعتقد أن مربع نص؟

  • طالما أنك لا تحفظ عناوين البريد الإلكتروني في مكان ما ، فليست هناك حاجة لإلغاء الاشتراك
  • إذا قمت بحفظ عناوين البريد الإلكتروني ، فقم بإنشاء ملف آخر يسمح للأشخاص بإلغاء الاشتراك.

عادةً ما يعمل ملف إلغاء الاشتراك على النحو التالي:

  • تلقي عنوان البريد الإلكتروني لإلغاء الاشتراك كمعلمة QueryString
  • عرض عنوان البريد الإلكتروني هذا في مربع نص واحد ، جنبا إلى جنب مع زر "إلغاء الاشتراك"
  • إذا انقر المستخدم على هذا الزر ، فقم بإزالة عنوان البريد الإلكتروني من قاعدة البيانات.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top