【问题标题】:Unsubscribe option in Email using C# [closed]使用 C# 在电子邮件中取消订阅选项 [关闭]
【发布时间】:2013-11-20 04:39:28
【问题描述】:

我一直在从 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); 

【问题讨论】:

  • 只需向他们发送一个链接以取消订阅...我错过了什么吗?
  • 此代码如何帮助您“取消订阅”您希望取消订阅的任何内容?
  • 我希望 OP 显示发送电子邮件的代码并询问退订的最佳方法,如果我错了,请纠正我。
  • 您需要将用户登录到具有布尔/位取消订阅列的表。一旦他们点击取消订阅,默认值为 0,然后您将将此列更新为 1 并根据此列发送您的电子邮件
  • @Sudhakar:谢谢,是的,你是对的。如果有人读得正确,那么我就展示了我所知道的并写下了我想知道的。 :)

标签: c# asp.net email unsubscribe


【解决方案1】:

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

请按以下步骤操作:

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

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

第二步:如下创建退订网址:

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

第 3 步:将此 URL 作为退订 URL 发送给用户,以便当他想退订时,只需单击该 URL 即可。

第四步:如果用户点击给定的 URL,则读取 emailID emailID=xyz@gmail.com 的 QueryString 值

第五步:通过将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+"'";

【讨论】:

  • 我知道了,但是有一个疑问,我怎么知道他什么时候会点击退订链接,因为我有一个网络应用程序,所以我需要申请才能回来吗?
  • 另外+1:给我一个想法。 :)
  • @ItiTyagi:如果用户点击给定的 url(我的意思是在解决方案中),他将被重定向到您的网页,您可以通过从查询字符串中获取 emailid 进一步进行操作。如果没有澄清,请告诉我。
  • 这允许任何人只要知道他们的电子邮件地址就可以取消订阅其他人
  • @thelem,不仅如此。示例中的 SQL 注入。拥有这样评分的用户如何发布这样的答案?
【解决方案2】:

我猜你的订阅者存储在某个地方。因此,取消订阅的简单方法是通过电子邮件地址从商店中删除记录。

与 SmtpClient 类无关。

【讨论】:

  • 好吧,这就是我的想法,我会将用户标记为退订者。
  • 非常感谢,+1 给了我一个想法。
【解决方案3】:

邮件列表的概念包括电子邮件地址列表,通常保存在数据库中。您的代码从“EmailTxt”添加接收者,我猜是一个文本框?

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

取消订阅文件的功能通常如下:

  • 接收要取消订阅的电子邮件地址作为查询字符串参数
  • 在单个文本框中显示此电子邮件地址以及“取消订阅”按钮
  • 如果用户单击此按钮,则从数据库中删除电子邮件地址。

【讨论】:

  • @Markus:谢谢哥们,我很感激,+1:给予提示。 :)
猜你喜欢
  • 2011-10-10
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 2019-08-04
  • 2012-12-02
  • 2022-01-23
  • 2011-05-20
相关资源
最近更新 更多