Отменить подписку в электронной почте с помощью C#

Я отправлял электронную почту с C#, и они работают нормально, но теперь я также ищу функциональность, позволяющую получателю отписаться. Я не могу понять, как действовать, потому что понятия не имею. Я достаточно погуглил, так что мне нужна подсказка.

Ниже мой код:

  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); 

3 ответа

Решение

Отписаться легко, если вы уже поддерживаете идентификаторы электронной почты пользователей в базе данных.

Пожалуйста, выполните следующие действия:

Шаг 1. Создайте дополнительный столбец в пользовательской таблице как unsubscribe в базе данных. это займет true или же false как значения. установить по умолчанию false так что каждый подписанный пользователь получает электронную почту.

Примечание: перед отправкой почты пользователям, пожалуйста, проверьте их unsubscribe колонка. если это ложь, отправьте электронное письмо. если это правда, не отправляйте электронную почту, так как они отписались.

Шаг 2: Создайте отписавшийся URL, как показано ниже:

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

Шаг 3. Отправьте этот URL-адрес пользователю как URL-адрес для отмены подписки, чтобы каждый раз, когда он чувствует, что хочет отписаться, он может сделать это, просто щелкнув по этому URL-адресу.

Шаг 4: один раз, если пользователь нажимает на указанный URL, прочитайте значение QueryString emailID emailID=xyz@gmail.com

Шаг 5: Обновите информацию о таблице пользователя, установив 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.

Концепция списка рассылки включает в себя список адресов электронной почты, обычно сохраняемый в базе данных. Ваш код добавляет получателя из "EmailTxt", я думаю, текстовое поле?

  • Пока вы не сохраняете адреса электронной почты где-либо, нет необходимости отписываться
  • Если вы сохраняете адреса электронной почты, то создайте еще один файл, который позволит людям отказаться от подписки.

Файл отписки обычно работает следующим образом:

  • получить адрес электронной почты для отмены подписки в качестве параметра строки запроса
  • отобразить этот адрес электронной почты в одном текстовом поле вместе с кнопкой "отписаться"
  • если пользователь нажимает эту кнопку, то удалите адрес электронной почты из базы данных.
Другие вопросы по тегам