【问题标题】:SMTP relaying in C#?C# 中的 SMTP 中继?
【发布时间】:2009-11-02 22:13:11
【问题描述】:

我需要创建一个可以监听SMTP 的 Windows 服务。

当它收到一封电子邮件时,我需要对其进行处理,然后将其转发到我真正的 SMTP 服务器以便正确发送。

谁能告诉我任何有用的源代码、库或教程,告诉我如何开始这样做?

似乎我只需要一个简单的 TCP 侦听器和消息解析器,然后我可以简单地使用 .NET SmtpClient API 重新发送消息?

【问题讨论】:

  • 你曾经用 c# 做到过吗?

标签: c# smtp


【解决方案1】:

我不知道您的全部要求,但IIS SMTP 服务可以将收到的电子邮件保存到 /Drop 目录。不必编写一个完整的 TCP/IP 服务,您只需编写一个文件监控服务来监控 /Drop 目录中的新电子邮件、解析它们并对其执行自定义操作。

【讨论】:

  • oo 这听起来很有希望,有更多关于如何做到这一点的信息吗?
  • 其实没那么难。在 IIS SMTP 管理界面中,右键单击 SMTP 虚拟服务器,然后列出您要接受电子邮件的域。然后,设置您的 DNS MX 记录以指向您的 IIS SMTP 服务 IP。所有传入的邮件都将保存到这些域的指定 /Drop 目录中。
【解决方案2】:

Eric Daugherty 在sourceforge 上有一个C# email server。这将做服务器。要将消息转发到另一个 SMTP 服务器,可以使用默认的 System.Net.Mail.SmtpClient 类。

或者你写一个custom transport binding element for WCF(开玩笑)。

【讨论】:

    【解决方案3】:

    您可能想查看此link。文章指出“MailServerComponent 实现 POP3 和 SMTP(核心)服务器。它处理低级 POP3 和 SMTP 命令并根据它引发事件。MailServer 服务只处理 MailServerComponent 事件并执行邮件检索和存储工作。”。它至少可以作为您的起点。

    您是对的,您可以实现自己的 (TCP) 套接字侦听器来处理和处理所有必需的 SMTP 消息。检查协议规范here

    【讨论】:

      猜你喜欢
      • 2010-09-19
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2018-03-03
      • 2013-09-04
      • 2013-10-07
      • 2010-10-02
      相关资源
      最近更新 更多