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