【问题标题】:What's the best way to give the user weekly updates from your program?从您的程序中向用户提供每周更新的最佳方式是什么?
【发布时间】:2010-09-20 02:36:55
【问题描述】:

我有一个程序,大部分情况下,在后台运行。假设它是DoesWork()。每周一次,我希望它通知用户它在过去几天完成的一些工作。这将是一份基本状态报告,列出了一些已下载的文件。

最初,我想通过电子邮件发送此状态更新,因此我对此进行了调查,但存在很多问题。我需要一个 SMTP 服务器,所以我查看了 GMail。没关系,但每日限制为 500 封电子邮件,因此不适合发布。此外,在每个程序副本中提供相同的电子邮件帐户密码也会存在问题,据我所知,即使密码是使用加密存储的,也是有风险的。

然后我想也许我可以使用用户自己的电子邮件帐户向他/她自己发送电子邮件。这也有一些复杂性:用户需要为他/她的电子邮件帐户指定所有 smtp 信息,这对于目标用户来说太复杂了。另外,我不想让人们在我的程序中输入他们的电子邮件帐户密码只是为了发送电子邮件。我不认为这是一个值得提倡的好习惯。

我有什么办法可以通过电子邮件做到这一点?电子邮件是我的第一选择,因为它是一个用户已经在检查的通知系统。这是相当非侵入性的。

有必要设置我自己的 smtp 服务器吗?如果是这样,我该怎么做?

如果电子邮件不可行,我也在考虑只生成一个包含相关信息的本地 HTML 文件,然后每周从程序弹出一个通知通知用户新的更新报告已准备好.我认为这是完全可行的,它只是过于打扰而不是我的第一选择。我想搭载用户已经在使用的系统。

谢谢! -格雷格

【问题讨论】:

  • 这是一个 Windows 应用程序吗? .NET 框架?
  • 对于这个应用程序,是的,C# .NET。
  • ... 和一个 Windows 应用程序。我没有意识到该平台与任何 StackOverflow 问题有关。
  • 当心在您的程序中部署本地 SMTP 服务器。除非您在某些公共数据库中注册服务器(即用户的机器),否则许多电子邮件服务(包括 gmail)会将电子邮件标记为垃圾邮件。

标签: email smtp status updates


【解决方案1】:

Google for simple smtp server windows 为您提供this

说实话,如果您每周只发送一次邮件,最好的选择是电子邮件,因为它不够频繁,无法保证用户会在他的机器上接受其他类型的请求,这需要您写专有软件。

您也可以将其发布到 irc 频道,或编写一个 MSN 机器人向用户发送消息,如果用户离线,该消息将作为离线消息发送。

我仍然会选择电子邮件,它已经过尝试和测试。

【讨论】:

  • 我在网上阅读的理解是从'localhost'发送邮件会导致它被许多服务器(例如hotmail,aol mail等)自动拒绝。所以我认为这不是一个好的解决方案。
【解决方案2】:

另一种方法是让程序生成一个 RSS 提要并指导用户如何订阅它。此外,一旦生成了新的更新,显示更新 toast 大约一分钟,然后自动将其隐藏并将系统托盘图标更改为不同的东西。大约一天后将其更改回原始图标。另外,给用户一个永久关闭 toast 的设置。

依靠电子邮件不是一个好主意,因为您必须收集用户电子邮件并为此处理隐私问题,您将有效地使用任何第三方 SMTP 服务器,或者必须为您的基础设施投资拥有。

【讨论】:

  • 我并不是要暗示我需要收集用户的电子邮件……我只是说他们可以使用他们已经使用的任何电子邮件阅读程序(例如 Outlook、Gmail、whatevs)。不过,我喜欢图标的想法……不错。如何创建本地 RSS 提要?
  • 好吧,为了通过 SMTP 向用户发送电子邮件,您需要知道他们的电子邮件地址。 :-)
  • 如何将 RSS 提要创建为本地文件,取决于您使用的语言。有一些标准库可以帮助创建和更新每种主要语言的 RSS 提要。你也可以自己做——毕竟,RSS 只是一个 XML 文件。
  • 我了解如何创建 RSS 提要文件(例​​如 feed.xml),但我不明白如何让 RSS 提要阅读器将本地文件识别为提要源。例如,您会指定什么作为提要 URL?
  • 啊,我明白了。大多数 RSS 阅读器应该能够理解 file:// 协议以及 http:// 协议。当然,这需要用户使用可以访问本地文件系统的 RSS 阅读器;因此,例如 Google Reader 将无法工作。
【解决方案3】:

如果我理解正确的话,用户在他的电脑上运行这个程序,在后台。

通知某事的完美方式是,恕我直言,将程序最小化到托盘栏,点击一个小弹出窗口,将打开一个带有每周报告的窗口。

希望这会有所帮助。

【讨论】:

  • 这是个好主意...我希望能收到一封电子邮件通知,因为电子邮件已经得到如此广泛的检查。让图标闪烁需要用户与另一个消息传递媒体进行交互,这是我试图避免的。不过,这可能是要走的路。
【解决方案4】:

对于一个简单的 SMTP 服务器,我使用hmail。我将其配置为接受来自本地计算机的所有 SMTP 请求,无论源和目标如何,并拒绝任何不是来自本地主机的 SMTP 请求。如果您有一个位于中心的应用程序,这将很好。

如果您想分发应用程序,您的情况就完全不同了;由于许多 ISP 对 SMTP 流量进行了限制,您最好的选择是允许用户输入他们的邮件帐户详细信息,然后使用它来发送邮件。这将确保每个人都可以进入工作环境。然后使用存在的任何库或预制代码供您选择的 yoru 语言使用这些设置发送电子邮件。

【讨论】:

    【解决方案5】:

    如果您确实让他们指定了自己的 smtp 服务器,请确保在此处放置“发送测试电子邮件”按钮,以便他们进行测试。我从经验中知道,用户在指定 smtp 服务器、用户名、密码时总是会输入错误的详细信息,因为有些 smtp 服务器需要用户名/密码,而另一些不需要。

    如果他们确实输入了错误的详细信息(或者他们更改了),那么您可能需要通过某种方式向他们发送较旧的报告,或者通过其他方式通知他们您无法发送电子邮件。

    电子邮件很棒,但您可能还需要其他方法。

    【讨论】:

    • 好点...在这里我认为这将是简单的部分:)
    【解决方案6】:

    是否需要每周摘要?相反,如何使用Growl(或等效的)在后台实时通知用户正在完成的任务?

    【讨论】:

      猜你喜欢
      • 2012-04-19
      • 2010-09-20
      • 2018-07-12
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多