【发布时间】:2011-01-22 08:11:14
【问题描述】:
我想知道是否有适用于 .NET 的框架来帮助我向用户发送消息。我希望能够将我所有的消息写入一个存储库。然后,我希望能够根据用户设置的偏好将这些消息发送给用户。例如我希望能够通过电子邮件和短信向用户 A 发送通知 A,并通过 SMS 和 IM 向用户 B 发送通知 B。关于是否存在这样的东西或者我需要写它有什么想法吗?
【问题讨论】:
标签: .net asp.net system.messaging
我想知道是否有适用于 .NET 的框架来帮助我向用户发送消息。我希望能够将我所有的消息写入一个存储库。然后,我希望能够根据用户设置的偏好将这些消息发送给用户。例如我希望能够通过电子邮件和短信向用户 A 发送通知 A,并通过 SMS 和 IM 向用户 B 发送通知 B。关于是否存在这样的东西或者我需要写它有什么想法吗?
【问题讨论】:
标签: .net asp.net system.messaging
对于电子邮件,请查看SmtpClient。对于短信,您有两种选择:
对于 IM,这完全取决于您所指的内容,例如微软?或实际的机器对机器 IM。
【讨论】:
这不是一项简单的任务,您需要独立实现所有部分。如果您按照上面的建议使用 SmtpClient,您可能会遇到性能问题或反垃圾邮件问题,因此请考虑使用电子邮件服务器。对于 IM,您可以使用 XMPP(又名 Jabber)协议和 XMPP 服务器。它使从一个地方发送各种即时消息成为可能。有很好的免费 XMPP 客户端库 agsXMPP 和用于服务器的谷歌“ejabberd”。
【讨论】:
System.Net.Mail 将是您正在寻找的用于向用户发送电子邮件的命名空间。看看this code example,它可以帮助您指明正确的方向。
【讨论】:
许多移动服务提供商允许您使用收件人电话号码作为电子邮件地址发送一封将转换为短信的电子邮件,即 3335558888@txt.att.net
具体可以使用以下:
AT&T:[10 位手机号码]@txt.att.net 160 个字符
Verizon:[10 位手机号码]@vtext.com 140 个字符
各种运营商都有一些您需要注意的小怪癖,即要求您在号码的开头添加 1 以表示美国呼叫代码。
【讨论】:
对于电子邮件和 SMS,只需让他们提供多个电子邮件地址并为每个地址配置消息。他们可以提供自己的移动电子邮件地址;不必担心每个移动提供商的细节是一项艰巨的任务,而且没有必要。我不确定是否每个移动提供商都有电子邮件->短信,但如果他们没有并且您必须 100% 提供它,那么网关可能是您唯一的选择。
对于 IM 部分,有另一篇文章通过很多链接准确地询问了这一点。 https://stackoverflow.com/questions/1672201/library-for-instant-messaging-like-libpurple-but-written-in-c
【讨论】: