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