我正在建立一个公共网站,它有自己的域名和 pop/smtp 邮件服务。我正在考虑让用户选择通过电子邮件更新他们的数据——类似于 Flickr 或 Blogger 中的功能,您可以将帖子通过电子邮件发送到一个特殊的电子邮件地址。然后处理电子邮件数据并将其存储在网站的基础数据库中。
我正在使用 ASP.NET 和 SQL Server 并使用共享托管服务。有什么想法可以实现这一点,或者甚至可以使用共享主机吗?
谢谢
对于初学者,您需要拥有允许您创建包罗万象的邮箱的主机。
其次,您需要一个好的 POP3 或 IMAP 库,它不包含在 .NET 堆栈中的 AFAIK。
然后,您将编写一个命令行应用程序或一个定期检查邮箱、提取消息、根据“收件人”地址(每个用户都是唯一的)在数据库中插入内容的服务,然后从邮箱中删除电子邮件。
这是可行的,听起来很有趣。在开始之前,请确保您拥有所需的一切!
如果数据有些“关键”,或者至少中等重要,请不要使用他们的用户名作为“更改数据地址”。示例:您可能想创建一个类似的地址username@domain.com
,但username-randomnumer@domain.com
如果访问网页,则使用您给他们随机数的地方。这样人们就不能仅仅通过知道他们的用户名来更新其他人的数据。
电子邮件可以轻易伪造。如果您可以在您的应用程序中处理 PGP / SMime 证书,我只会这样做。
除此之外,我认为没有理由不这样做!
使用 dotnet popclient 读取传入的电子邮件,根据您的期望解析它们并将数据插入数据库。
有关简单的 popclient 实现,请参见 codeproject 网站,您必须自己决定电子邮件内容,例如仅数据、sql 语句的有效负载等
您还可以根据发件人地址识别用户。这就是Tripit(可能还有其他人)的做法。这只需要您的一个电子邮件地址。
我做了类似的事情,使用Lumisoft 的 IMAP 客户端并在我的应用程序中安排一个任务,每隔 x 分钟检查一次配置的邮件地址是否有更新。对于调度,我推荐quartz.net。没有启动外部进程或任何东西。