因此,我在服务器上安装了 Sendmail 服务、Dovecot 和 SquirrelMail。我可以从本地客户端(同一网络中的不同主机)接收邮件。但我无法将邮件从服务器发送到客户端,而且当客户端主机尝试将邮件发送到此服务器的另一个客户端时,服务器会收到邮件,但无法将其转发给另一个客户端。(注意:我只在本地网络中工作)。这是我的 mail.log 中的错误:
11月30日 15:34:10 dev sendmail[5620]: uAUFY8Jl005620: 来自=开发,大小=4,类别=0,nrcpts=1,msgid=<201611301534.uAUFY8Jl005620@dev。本地主机>,relay=root@localhost
11月30日 15:34:10开发发送邮件[5620]: uAUFY8Jl005620:[电子邮件保护],ctladdr=dev (1000/1000),delay=00:00:02,xdelay=00:00:00,mailer=relay,pri=30004,relay=[127.0.0.1] [127.0.0.1],dsn=4.0.0,stat=Deferred:[127.0.0.1] 拒绝连接
11 月 30 日 15:40:01开发 sm-msp-队列[5802]: uAUFQnYE005516:[电子邮件保护],ctladdr=dev(1000/1000),延迟=00:13:12,
当客户端 1 尝试发送给客户端 2 时,出现此错误
11月30日 15:57:52开发sm-mta[5853]: uAUFvQin005853:[电子邮件保护]... 用户未知
11月30日 15:57:57开发sm-mta[5853]: uAUFvQin005853:[电子邮件保护],大小=0,类别=0,nrcpts=0,proto=SMTP,守护进程=MTA,中继=client2.test.test2.fr [192.168.0.3]
我的 /etc/hosts 文件如下所示:
127.0.0.1 dev.localhost dev
127.0.1.1 dev
192.168.0.1 dnsServer1.test.test2.fr dnsServer1
192.168.0.1 mail.test.test2.fr mail
以及 /etc/mail/local-host-names :
localhost
192.168.0.1
mail.test.test2.fr
test.test2.fr
dev
我在 ubuntu 14。谢谢你的帮助。
来自评论的额外信息:
$netstat -ant | grep :25
tcp 0 0 192.168.0.1:25 0.0.0.0:* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
答案1
Sendmail 将“通过命令行 sendmail 发送”提交的消息传递给在 127.0.0.1:25 监听的本地 sendmail 守护进程。
看来您的 sendmail 只监听 IPv4 192.168.0.1:25(本地网络?)和 IPv6 ::1:25(任意)。很可能您只想接受来自本地网络的传入 TCP 连接。
DAEMON_OPTIONS
在您的文件中进行修复sendmail.mc
。添加对 127.0.0.1 的监听或使用对 IPv4“任意”的监听。
在您的sendmail.mc
添加中,下面列出第二个 DAEMON_OPTIONS。
重新编译sendmail.mc
并sendmail.cf
重新启动(或 HUP)sendmail 守护程序。
DAEMON_OPTIONS(`Port=smtp, Addr=192.168.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp, Addr=127.0.0.1, Name=MTA-loopback')dnl