Отменить подписку в электронной почте с помощью 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", я думаю, текстовое поле?
- Пока вы не сохраняете адреса электронной почты где-либо, нет необходимости отписываться
- Если вы сохраняете адреса электронной почты, то создайте еще один файл, который позволит людям отказаться от подписки.
Файл отписки обычно работает следующим образом:
- получить адрес электронной почты для отмены подписки в качестве параметра строки запроса
- отобразить этот адрес электронной почты в одном текстовом поле вместе с кнопкой "отписаться"
- если пользователь нажимает эту кнопку, то удалите адрес электронной почты из базы данных.