我希望用户使用标识该项目的电子邮件地址向服务器发送电子邮件,然后让服务器将消息中继到该项目的电子邮件地址.例如,如果用户向以下地址发送电子邮件:
item-75@myserver.example.com
然后服务器将收到电子邮件并将其传递给脚本.该脚本将在数据库中查询项目75以获取电子邮件地址列表,然后重新发送电子邮件.
我可以在使用sendmail的unix系统上轻松完成此操作,但我不知道是否可以在Windows系统上完成类似的设置(或者是否需要其他软件).
这是你想要做的.
配置IIS SMTP服务以接受域的电子邮件(您可以在域SMTP下的IIS SMTP服务的属性中配置它).说域名“myserver.example.com”
然后,在DNS服务器中,配置指向“myserver.example.com”的MX记录.
现在,当电子邮件发送到您的IIS SMTP服务器时,它实际上将被放置在您的mailroot / drop文件夹中(您也可以在IIS SMTP服务属性中更改此文件夹).
现在您正在接受电子邮件,下一步是编写一个脚本,该脚本将:
1)解析电子邮件.
2)相应地修改它们(你只想更改“到”地址吗?).
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服务,或者实现类似filesystemwatcher的功能,每次将电子邮件创建为文件时它都会执行.
5)所有这一切的另一个选择是实际实现一个SMTP事件接收器,但我认为这对你想要做的事情来说太过分了,并且可能会产生比它解决的更多麻烦.如果我喜欢疼痛,我只会去事件接收路线.
希望我没有像泥一样清楚.