我有一个运行Debian8的exim4服务器,它可以通过Namec堆的mail.privateemail.com smtp服务器发送来自smarthost的外发邮件--或者至少使用它。在最近的更新之后,服务器不再接受端口25上的连接。我已将exim重新配置为使用端口587,但不能发送任何邮件。
问题似乎发生在STARTTLS握手过程中。初始连接成功,服务器发送其220响应,exim客户端发送其ELHO命令,服务器提供250 STARTTLS选项。此时,exim不再使用STARTTLS进行应答并建立安全连接,而是开始发送消息头。为此,服务器发送530“必须首先发出STARTTLS命令”,消息传递尝试中止。下面是通过exim -d -M强制传递冻结消息的调试输出片段:
Transport port=25 replaced by host-specific port=587
Connecting to mail.privateemail.com [198.54.122.60]:587 ... connected
waiting for data on socket
read response data: size=32
SMTP<< 220 PrivateEmail.com Mail Node
198.54.122.60 in hosts_avoid_esmtp? no (option unset)
SMTP>> EHLO efserver.hellonull.com
waiting for data on socket
read response data: size=22
SMTP<< 250-STARTTLS
250 OK
198.54.122.60 in hosts_require_tls? no (option unset)
198.54.122.60 in hosts_avoid_pipelining? no (option unset)
not using PIPELINING
198.54.122.60 in hosts_require_auth? no (option unset)
SMTP>> MAIL FROM:<>
waiting for data on socket
read response data: size=41
SMTP<< 530 Must issue a STARTTLS command first
ok=0 send_quit=1 send_rset=1 continue_more=0 yield=0 first_address is not NULL
SMTP>> QUIT以前所有的东西都在25号港口工作。此外,我能够使用配置为使用相同的服务器、端口和STARTTLS的IceDove发送传出邮件。有人能解释为什么exim似乎忽略了服务器提供的STARTTLS吗?
发布于 2016-07-04 11:52:22
您可以通过在您的配置中添加列表中最聪明的hosts_require_tls选项来解决这个问题。这将导致Exim发送STARTTLS命令来建立TLS连接。但是,hosts_avoid_tls选项可能会覆盖该设置。
您可能需要尝试使用端口465 (SSMTP)。它被记录为支持传入的流量。它确实支持传出流量。我已经测试过将最聪明的定义为example.com:ssmtp而不是example.com。
发布于 2016-09-20 02:57:18
我很高兴报告问题已经解决了。问题似乎与NameCheap的私人电子邮件服务有关。我今天又开始做这件事了,在使用了和以前一样的设置后,我可以通过dpkg-reconfigure exim4-config发送发送出去的邮件。我不需要更改exim配置中的任何特殊选项。SMTP会话显示privateemail.com服务器现在正常响应SMTP连接。我认为NameCheap的更新解决了这个问题。
SMTP>> EHLO efserver.hellonull.com
SMTP<< 250-MTA-08.privateemail.com
250-PIPELINING
250-SIZE 81788928
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
SMTP>> AUTH PLAIN ********************************************
SMTP<< 235 2.7.0 Authentication successfulhttps://serverfault.com/questions/787718
复制相似问题