您将如何通过电子邮件实现数据库更新?

时间:2008-09-24 08:44:54

标签: asp.net database email

我正在建立一个公共网站,它有自己的域名和pop / smtp邮件服务。我正在考虑让用户通过电子邮件更新他们的数据 - 类似于Flickr或Blogger中的功能,您可以将帖子通过电子邮件发送到特殊的电子邮件地址。然后处理电子邮件数据并将其存储在网站的基础数据库中。

我正在使用ASP.NET和SQL Server并使用共享托管服务。任何想法如何实现这一点,或者甚至可能使用共享主机?

由于

6 个答案:

答案 0 :(得分:3)

对于初学者,您需要拥有允许您创建全能邮箱的主机。

其次,你需要一个好的POP3或IMAP库,它不包含在.NET堆栈中的AFAIK。

然后你会编写一个命令行应用程序或服务,定期检查邮箱,提取邮件,根据“收件人”地址(每个用户都是唯一的)在db中插入内容,然后从中删除邮件邮箱中。

这很可行,听起来很有趣。在开始之前,确保你拥有所需的一切!

答案 1 :(得分:2)

如果数据有点“关键”,或至少中等重要,请不要将其用户名用作“更改数据地址”。示例:您可能想要创建类似username@domain.com的地址,而是使用username-randomnumer@domain.com,如果访问网页,则为其提供随机数。这样人们就无法通过了解用户名来更新其他人的数据。

答案 2 :(得分:1)

电子邮件可以轻易伪造。如果您可以在应用程序中处理PGP / SMime证书,我只会这样做。

除此之外,我没有理由不这样做!

答案 3 :(得分:0)

使用dotnet popclient读取传入的电子邮件,解析它们是否符合您的预期,并将数据插入数据库。

请参阅codeproject网站,了解简单的popclient实现 您必须自己决定电子邮件内容,例如仅限数据,sql语句的有效负载等

答案 4 :(得分:0)

您还可以根据发件人地址识别用户。这就是Tripit(可能还有其他人)的做法。这只需要一个电子邮件地址。

答案 5 :(得分:0)

我做了类似的事情,使用Lumisoft's IMAP client并在我的应用程序中安排任务,每隔x分钟检查一次配置的邮件地址以进行更新。对于日程安排,我建议quartz.net。没有启动外部流程或任何东西。