我按照这里的教程进行操作: https://help.ubuntu.com/community/PostfixCompleteVirtualMailSystemHowto#Create_a_vmail_user 在新的 ubuntu 安装上设置 Postfix,但它无法启动,每当我尝试使用 postfix start 启动它时,都会说:致命:邮件系统启动失败
这是我的错误日志:SYSERR(root):collect:无法写入./dfr2IIHHJB029721(bfcommit,uid = 0,gid = 125):没有此文件或目录
和致命错误:绑定 0.0.0.0 端口 25:地址已在使用中,而且 smtp 正在端口 25 上运行,我检查过了。请问我该怎么办?我需要启动并运行此邮件服务器
答案1
查看哪个端口打开了。在 Linux 中:
$ sudo netstat -lnp |grep :25
你会看到类似这样的内容:
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1624/master
tcp6 0 0 :::25 :::* LISTEN 1624/master
在本例中,1624 是进程 ID (pid)。因此:
$ ps aux |grep 1624
root 1624 0.0 0.0 25160 1636 ? Ss Jul17 0:00 /usr/lib/postfix/master
您可以终止或重新启动该进程(或者决定,呵呵,它已经在运行......)。
答案2
通常,Postfix 在安装时会自动禁用 Sendmail。Sendmail 也是一个邮件服务器,因此不能有两个 Sendmail 在同一个端口上处理您的电子邮件。
由于 Postfix 自动提供了sendmail
兼容程序,您的系统和用户(例如mail
PHP 函数)可以继续调用它,但您不再需要 sendmail MTA,因为 Postfix 现在将完成其工作。
我建议您卸载 Sendmail MTA 以避免出现问题:
apt-get remove sendmail
如果您想确定您拥有哪个 sendmail 命令(Postfix 命令或真正的 sendmail 命令),您可以使用以下命令:
user@linux:~# ldd /usr/sbin/sendmail
...
libpostfix-global.so.1 => /usr/lib/libpostfix-global.so.1 (0x00007f890e1b1000)
libpostfix-util.so.1 => /usr/lib/libpostfix-util.so.1 (0x00007f890df7b000)
...
如果你看到类似库postfix,则说明您安装了正确的 sendmail 程序。
答案3
您还可以运行
lsof -Pni | grep LIST | grep ":25"
然后使用“ps”检查那里正在运行什么。