C# 自定义邮件服务器:通过本地计算机上的套接字接收电子邮件
C# custom mail server: receive email through socket on local machine
我正在为电子邮件验证编写单元测试。
我正在尝试编写一个非常简单的 POP3 电子邮件侦听器(使用套接字),以便可以使用类似 test@hostnameofmymachine 的方式将电子邮件发送到我的本地计算机。
我试过这样做:https://msdn.microsoft.com/en-us/library/kb5kfec7%28v=vs.110%29.aspx
但我不知道电子邮件将发送到哪个端口,所以我无法创建套接字,除非我知道要收听哪个端口。
SMTP 服务器(发送消息的服务器)如何知道在哪个端口上发送电子邮件? (IMAP 143?993?)(POP3 110?995?)所以我不知道我必须在哪个端口上收听。
SMTP如何知道接收方是POP3还是IMAP?它怎么知道是否支持SSL?
我很确定我遗漏了一些有关电子邮件协议的重要信息。
POP3 和 IMAP 不接收电子邮件,它们只允许访问存储的电子邮件。
您需要编写 SMTP 服务器,而不是 POP3 服务器。
我建议您使用此存储库,它本身包含您可能需要的大部分服务,并且易于配置。
在我们的案例中,我们使用以下服务:
- 带 SMTP 的后缀。
- POP3 的 Dovecot。
- 具有自定义规则的 SpamAssassin。
- OpenDKIM
- OpenDMARC
- LetsEncrypt 和 self-signed 证书
- 持久数据和状态
- CI/CD
- 分机分隔符(you+extension@example.com go to you@example.com)
Docker 邮件服务器
https://github.com/docker-mailserver/docker-mailserver
我正在为电子邮件验证编写单元测试。 我正在尝试编写一个非常简单的 POP3 电子邮件侦听器(使用套接字),以便可以使用类似 test@hostnameofmymachine 的方式将电子邮件发送到我的本地计算机。
我试过这样做:https://msdn.microsoft.com/en-us/library/kb5kfec7%28v=vs.110%29.aspx
但我不知道电子邮件将发送到哪个端口,所以我无法创建套接字,除非我知道要收听哪个端口。
SMTP 服务器(发送消息的服务器)如何知道在哪个端口上发送电子邮件? (IMAP 143?993?)(POP3 110?995?)所以我不知道我必须在哪个端口上收听。
SMTP如何知道接收方是POP3还是IMAP?它怎么知道是否支持SSL?
我很确定我遗漏了一些有关电子邮件协议的重要信息。
POP3 和 IMAP 不接收电子邮件,它们只允许访问存储的电子邮件。
您需要编写 SMTP 服务器,而不是 POP3 服务器。
我建议您使用此存储库,它本身包含您可能需要的大部分服务,并且易于配置。
在我们的案例中,我们使用以下服务:
- 带 SMTP 的后缀。
- POP3 的 Dovecot。
- 具有自定义规则的 SpamAssassin。
- OpenDKIM
- OpenDMARC
- LetsEncrypt 和 self-signed 证书
- 持久数据和状态
- CI/CD
- 分机分隔符(you+extension@example.com go to you@example.com)
Docker 邮件服务器 https://github.com/docker-mailserver/docker-mailserver