2

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

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

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

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

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

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

谢谢!-格雷格

4

6 回答 6

2

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

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

于 2008-10-30T23:25:18.130 回答
1

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

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

希望这可以帮助。

于 2008-10-30T23:27:07.737 回答
1

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

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

电子邮件很棒,但您可能还需要另一种方法。

于 2008-10-31T00:34:33.623 回答
0

Google for simple smtp server windows 给你这个

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

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

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

于 2008-10-30T23:23:54.450 回答
0

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

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

于 2008-10-30T23:34:09.423 回答
-1

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

于 2008-10-31T08:01:30.007 回答