在点击时,电子邮件消息中的链接导致没有浏览器操作,这是不好的设计吗?

时间:2014-09-08 16:23:47

标签: asp.net web-services email refactoring httphandler

原帖:

此Web应用程序发送包含URL链接的电子邮件。

更正 - 澄清9/17/2014:

作为服务器上的计划任务运行的.EXE(在“支持”Web应用程序并连接到同一数据库)发送包含URL链接的电子邮件。 电子邮件内容的性质本质上是一个“提醒”;点击时的链接本质上是一个确认信号“完成”。

恢复原帖如下:

点击电子邮件中的链接会在目标.ASPX页面上执行两项操作:

  1. 页面逻辑更新数据库并向同一用户发送另一封电子邮件
  2. 页面通过在浏览器
  3. 中显示“成功”消息完成

    消除浏览器发送的成功消息是不好的设计?

    我正在考虑打开网页只是为了宣布“成功”是不需要的。如果目标URL被替换为没有用户界面的东西(例如HTTPHandler,webservice),那么我认为发回给同一用户的电子邮件确认“成功”就足够了。

    然而,这种方法的一部分“感觉很尴尬”,我想因为通常点击电子邮件中的链接会导致网页打开。鉴于这些要求,这是否会消除浏览器的糟糕设计?

    更新 - 2014年10月17日:

    请参阅:Submit to HttpHandler results in RequestType GET instead of POST

1 个答案:

答案 0 :(得分:1)

更新

实际上,基于GET请求进行状态更改是不好的设计。许多电子邮件系统(和病毒扫描软件)将遵循该链接,以确定是否应该隔离它。

不要紧,导致状态发生变化的GET请求几乎与网络应该如何工作无关。

他们应该点击链接,然后邮件程序打开浏览器。然后,您会显示一个页面,要求他们通过单击按钮来确认操作。该按钮会生成POST请求,然后您可以执行此操作。

最后,我还不完全确定如何消除浏览器。邮件程序检测到它是一个链接,并在用户点击它后打开浏览器。这与打开word文档或zip文件的方式没有什么不同。电子邮件程序只询问操作系统应该处理该操作的程序,并将其传递给该程序。


随着您的更新,我认为有一个更清洁的方式。但是,这取决于将接收消息的电子邮件客户端的功能。应该对绝大多数人都有好处。

在电子邮件正文中,不是发送链接,而是包含一个HTML表单,其中包含一个执行回发到服务器的按钮。有关其他公司如何做到的样本,请参阅此(link)。

这样一来,行动就是一步而不是两步而你并没有做错事(tm)。