在 Sendmail 中使用 Postfix 的问题

Cho*_* Li 15 postfix mail-server sendmail

我已经使用“apt-get install sendmail”安装了 sendmail,还使用 ​​Webmin 安装了 postfix。但是Postfix无法启动,当我检查/var/log/mail.err

*Jul 11 14:09:03 victoria postfix/master[6588]: fatal: bind 0.0.0.0 port 25: Address already in use
Jul 11 14:09:10 victoria postfix/master[6821]: fatal: bind 0.0.0.0 port 25: Address already in use
Jul 11 14:09:11 victoria postfix/master[6820]: fatal: daemon initialization failure
Jul 11 14:09:12 victoria postfix/postfix-script[6822]: fatal: mail system startup failed*
Run Code Online (Sandbox Code Playgroud)

和我的“netstat -tap”显示:

*root@victoria:/etc/init.d# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 localhost:mysql         *:*                     LISTEN      2365/mysqld     
tcp        0      0 localhost:submission    *:*                     LISTEN      5639/sendmail: MTA:
tcp        0      0 *:webmin                *:*                     LISTEN      896/perl        
tcp        0      0 *:ssh                   *:*                     LISTEN      554/sshd        
tcp        0      0 localhost:smtp          *:*                     LISTEN      5639/sendmail: MTA:
tcp        0    384 192.241.205.208:ssh     175.139.222.195:45062   ESTABLISHED 29460/1         
tcp6       0      0 [::]:http               [::]:*                  LISTEN      773/apache2     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      554/sshd        
getnameinfo failed
getnameinfo failed
tcp6       0      1 [UNKNOWN]:http          [UNKNOWN]:60003         LAST_ACK    -*   
Run Code Online (Sandbox Code Playgroud)

禁用 Sendmail 可以启动并运行 Postfix。但我认为 sendmail 和 postfix 应该一起工作?如何配置让它们都在服务器中?

谢谢。

Oli*_*Oli 22

Postfix 是一个内置的 sendmail 替代品,包括它自己的 sendmail 二进制文件(参见这篇文章的底部)。老实说,我很惊讶让你这样做,我以为它们是包冲突的。

无论如何,要修复:

sudo apt-get purge sendmail
sudo apt-get install --reinstall postfix
sudo /etc/init.d/postfix restart
Run Code Online (Sandbox Code Playgroud)

证明我的系统上的 sendmail 是由postfix以下提供的:

$ dpkg -S `which sendmail`
postfix: /usr/sbin/sendmail
Run Code Online (Sandbox Code Playgroud)

如果您仍然遇到问题,您可以通过以下方法找出占用 25 端口的程序(以及哪个包):

$ sudo netstat -pel | grep smtp
tcp 0 0 *:smtp *:* LISTEN root 8487 2212/master

$ # Then we use the 2212 from that in the following to get the package:
$ dpkg -S "$(sudo ps ux | grep 2212 | awk '{print $NF}')"
postfix: /usr/lib/postfix/master
Run Code Online (Sandbox Code Playgroud)

就我而言,这是后缀。在你的情况下,我希望看到别的东西。从轨道上核对它。

  • 嘿,谢谢你的帮助。我重新启动服务器,后缀启动,日志中不再出现错误!谢谢! (2认同)

sur*_*sea 10

对我来说,solituion 是 Ubuntu13 中 Oli 答案的一种变体:

错误:致命:绑定 0.0.0.0 端口 25:地址已在使用中

Sendmail 清除不起作用:

未安装包“sendmail”,因此未删除

所以我试过:

service sendmail stop
sudo apt-get install --reinstall postfix
Run Code Online (Sandbox Code Playgroud)

并工作!