我有一个在Windows IIS上运行的Web应用程序。 这个应用程序有一个数据库,其中每个项目都有一个唯一的键(1,2,3 …),以及一个电子邮件地址列表(除其他外)。
我希望用户使用标识该项目的电子邮件地址向服务器发送电子邮件,然后让服务器将消息转发到该项目的电子邮件地址。 例如,如果用户发送电子邮件到以下地址:
item-75@myserver.example.com
然后,服务器将收到电子邮件并将其传送给脚本。 脚本将查询数据库中的项目75以获取电子邮件地址列表,然后重新发送电子邮件。
我可以在使用sendmail的unix系统上轻松完成这个任务,但是我不知道是否可以在Windows系统上完成类似的设置(或者是否需要额外的软件)。
(这听起来像你想实现像craigslist一样的功能)。
IIS SMTP服务可以发送电子邮件,也可以接受电子邮件。
这是你想要做的。
将您的IIS SMTP服务配置为接受域的电子邮件(您可以在域SMTP下的IIS SMTP服务的属性中进行配置)。 说域名“myserver.example.com”
然后,在您的DNS服务器上,配置一个指向“myserver.example.com”的MX记录。
现在,当电子邮件发送到您的IIS SMTP服务器,它将实际上被放置在您的mailroot / drop文件夹(您也可以在IIS SMTP服务属性中更改此文件夹)。
现在您正在接受电子邮件,下一步是编写一个脚本,该脚本将:
1)解析电子邮件。
2)相应地修改它们(你只是想改变“to”地址?)。
3)如果你想重新发送电子邮件,那么你需要相应地修改它们。 您将需要添加一个单一的X-Sender头,用于识别发送电子邮件的电子邮件地址,以及一个X-Receiver头,用于接收电子邮件的每个收件人。 这是一个修改过的邮件示例:
X-Sender: me@mywebsite.com X-Receiver: recip1@theirdomain.com X-Receiver: recip2@theirdomain.com From: "jim bob" <jim@example.com> To: <item-75@myserver.example.com> Subject: test MIME-Version: 1.0 Content-Type: text/plain; Message-ID: <024f01c9e130$b3eca500$0401a8c0@local> test
一旦你有这个修改后的内容,你将要写入到一个文件在mailroot / pickup目录。 一定要使用一个独特的名字。
IIS SMTP服务将随之而来,接收电子邮件并将其中继,使用X-Sender作为MAIL FROM地址发送电子邮件,并将其发送到每个X-Receiver头中列出的每个电子邮件地址。
4)将此脚本作为计划任务运行。 另一个选择是将其构建为Windows服务,或者实现类似于文件系统监视器的功能,每次将电子邮件作为文件创建时执行。
5)所有这一切的另一个选择是实际上实现一个SMTP事件接收器,但我认为这是对你想要做的矫枉过正,可以创造更多的麻烦,比解决它。 如果我喜欢痛苦,我只会去事件下沉路线。
希望我没有像泥巴那样清楚。
事件接收器并不难! 事实上,在VBS(使用WSH的Win服务器上运行)中有大约十几个例子,它们完成了你想做的事情。 OnArrival事件接收器使用任何计算机用户帐户在REAL-TIME中运行,因为该消息是异步的并且不报告回来,所以您不希望有任何安全风险。
这实际上是一个非常容易的事情 – 最简单的事情之一。 一旦建立,它也不会中断。 在一台服务器上,我已经有一台服务器运行超过9年了,每天处理几千条传入的消息! 我已经设置了大约十几个这样的东西 – 如果你花了几个小时的时间,你做的很错误。 如果在UNIX上比这更容易,我的祖母可能是一个UNIX程序员,所以我不会吹牛,这在UNIX服务器上更容易。
http://msdn.microsoft.com/en-us/library/ms528023.aspx
http://support.microsoft.com/kb/894286
您可以使用定时脚本通过POP3或IMAP阅读电子邮件。 我也是一名UNIX客户,所以我正努力去理解这样的事情是如此困难,但是在那里呢。 这是我认为你应该做的。
用你喜欢的任何语言写一个脚本。 只要它能读取POP3或IMAP。
让Windows每5分钟运行脚本
让脚本访问邮箱并操作所需的任何电子邮件。
我个人的偏好是安装Python,但是如果你有限的话…我不知道。 ASPNET不错,但是我从来没有用它来做脏脚本。