我正在使用 postfix 和 dovecot 但似乎无法在任何地方找到如何创建此设置:
1)允许从外部(telnet)提交电子邮件,其中发件人域是本地服务器域,收件人地址可以是任何内容(不仅是本地收件人)
2)加密协议
3)创建身份验证,以便在通过协议向服务器提交电子邮件之前,客户端必须证明他们被允许从该服务器发送电子邮件(中继?)
默认情况下,postfix 在端口 25 上运行 SMTP,我可以使用它从任何地址向任何地址发送电子邮件,而无需任何加密或身份验证。我不认为这是我想要的。Telnet EHLO 返回
250-PIPELINING
250-SIZE 104857600
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
然后它还在端口 587 上运行 SMTP,这个端口也对任何人开放,但它只接受收件人的域名与服务器域名相同的电子邮件。同样没有身份验证。Telnet EHLO 返回
250-PIPELINING
250-SIZE 104857600
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
此外,我是否正确理解了 SMTP 提交协议 (587) 用于从其他服务器(及其客户端)接收发往我的客户端(带有我的域名的地址)的邮件?或者这种事情只使用 POP 和 IMAP?对于此设置,我应该使用三种 SMTP 协议(25、465、587)中的哪一种?
答案1
你的配置很扭曲;它应该是这样的:
端口上的 SMTP用于接收来自其他服务器的邮件到本地收件人,无需身份验证。它应该接受未加密的连接以实现兼容性,但只要其他服务器能够协商加密连接,则
25
允许加密连接是明智的做法。STARTTLS
提交端口上的权限
587
是供您自己的用户使用的邮件用户代理(MUA)。它应该STARTTLS
在身份验证之前要求,并且只允许经过身份验证的用户发送邮件。我建议使用smtpd_sender_login_maps
以防止任何用户使用任何发件人地址。
虽然端口上的 SMTP25
可以接受这两种连接,但它通常仅限于消费级互联网连接。针对这两种不同的情况,在不同的端口上进行单独的设置也更容易。
此端口465
用于 TLS 连接。其工作原理与提交,但连接直接以 TLS 启动。最后,POP3 和 IMAP 是使用 MUA 读取邮件的协议,而不是用于电子邮件传递的协议。