我一直在发送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); 
有帮助吗?

解决方案

如果您已经在数据库中维护了用户的电子邮件ID,那么取消订阅很容易。

请按照以下步骤:

步骤1: 在用户表中创建额外的列作为 unsubscribe 在数据库中。它将采取 true 或者 false 作为值。将默认设置为 false 这样每个订阅的用户都会收到电子邮件。

注意:在向用户发送邮件之前,请检查他们的 unsubscribe 柱子。如果是错误发送电子邮件。如果是真的,请不要发送电子邮件,因为它们已取消订阅。

第2步: 创建一个未订阅的URL如下:

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

步骤3: 将此URL作为退订URL发送给用户,以便每当他觉得退订时,他就可以通过单击该URL来做到这一点。

第4步: 一次,如果用户单击给定的URL读取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”中添加了接收器,我想文本框吗?

  • 只要您不保存电子邮件地址,就无需取消订阅
  • 如果保存电子邮件地址,请创建另一个允许人们取消订阅的文件。

退订文件通常会如下作用:

  • 接收电子邮件地址以取消订阅为querystring参数
  • 在单个文本框中显示此电子邮件地址,以及“退订”按钮
  • 如果用户单击此按钮,请从数据库中删除电子邮件地址。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top