我曾计划使用开源SMTP服务器作为基础并添加新功能以进行我需要的任何解析,然后发送响应,但我想知道是否有更简单的方法来执行此操作。
滚动我自己的SMTP服务器是我最好的选择还是我有更简单的方法来执行此操作?
我更愿意使用.NET来做到这一点。
答案 0 :(得分:2)
滚动自己的SMTP服务器是一项有趣的挑战,但并非微不足道。有许多Request for Comments(RFC)指定了SMTP服务器需要处理的内容。请查看Wikipedia文章,了解有关适用的RFC的一些信息,尤其是RFC 5321。
除非你手上有很多时间,或者只需要实现我建议使用开源服务器的一小部分功能。有一些示例项目(例如CodeProject),如果你想建立自己的项目,这可能是一个很好的起点。
答案 1 :(得分:1)
使用内置的.NET库实现这一点相对简单。
开始的地方是编写程序来下载邮件:here's a great example using POP3/C#。
完成后,您可以使用正则表达式或正在构建的任何规则引擎解析/存储电子邮件内容,然后使用.NET smtp libaries发送您的回复。
答案 2 :(得分:0)
通过SMTP发送.Net中的电子邮件非常容易,下载和解析它们有点困难,但是有很多关于编写POP3客户端的文章,所以它绝对可行。或者,如果你愿意花钱,可以购买相当多的POP3库,但我从来没有尝试过,所以我不能给出任何建议。
答案 3 :(得分:0)
我认为您不想编写自己的SMTP服务器,因为客户端和服务器之间的对话可能不一致且复杂。大多数SMTP服务器允许您指定MDA (Mail Delivery Agent),如procmail,以便为该计算机上的用户发送邮件。
您可以轻松编写procmail规则以通过您的程序传递电子邮件,这样可以让您根据电子邮件标题和正文的内容调用不同的脚本,或者将您的脚本编写为MDA本身。
答案 4 :(得分:0)
滚动自己的SMTP服务器会非常疯狂。为什么不连接到现有的SMTP服务器?据推测,传入的电子邮件来自也支持传出电子邮件的服务器。