我知道这几乎令人尴尬,但是它还是发生在我身上。
我这里有一台运行 Fedora 10 的服务器,上面装有 sendmail (8.14.3)。MTA 仅用于将消息从本地主机发送到智能主机。以前这工作得很好,只是我需要更换智能主机,因为它已被另一台具有不同 IP 地址和不同 DNS 名称的机器取代(在内部精简工作过程中)。
我按照在某个论坛上找到的一些说明进行操作,并在 mailertable 中添加了一行,如下所示:
aminocom.com ESMTP:[mail.aminocom.com]其中 mail.aminocom.com 是内部智能主机的名称。
然后我使用 m4 实用程序创建新的 .cf 文件并重新启动 sendmail。突然,我收到以下错误:
重新启动 sendmail 服务 关闭 sm-client:[失败] 关闭 sendmail:[ 确定 ] 正在启动 sendmail:[ 确定 ] 正在启动 sm-client:未定义本地邮件程序 必须设置 QueueDirectory (Q) 选项 [失败的]
我已经在 Google 上搜索过这个问题,但找到的大多是无人回复的论坛帖子。
根据 sendmail.cf,QueueDirectory 已定义。而且似乎没有任何地方提供关于如何定义本地邮件程序的信息???另外:当我使用 m4 实用程序重新创建 submit.cf 时,生成的文件未被接受并引发如下错误:
启动 sm-client:/etc/mail/submit.cf:第 0 行:V 行的参数无效:“ERSIONID(linux setup”
尽管 submit.mc 文件与另一台服务器(也运行带有 sendmail 的 Fedora 10)上的完全相同,但一切都运行正常。
理想情况下,我希望完全放弃 sendmail 并使用 exim,但在这种情况下,我没有这个选择。所以,有人能给我指出正确的方向吗?
答案1
我找到了一个解决方案。不确定这是否是我应该做的,但无论如何它有效。
运行任一后
使全部
或者
m4 sendmail.mc>sendmail.cf
我只是做了
cp 发送邮件.cf 提交邮件.cf
然后重新启动 sendmail,一切正常。奇怪的是,实际上没有任何关于此问题的文档。
答案2
经过一番谷歌搜索后,我找到了这篇文章,由于它确实对我有帮助,所以我想发布一下有用的方法。我在尝试执行以下 Rhel4 时遇到了此错误:
m4 sendmail.mc>sendmail.cf
/etc/mail/submit.cf:第 1 行:V 行的参数无效:“ERSIONID(linux setup”警告:.cf 文件已过期:sendmail 8.13.1 支持版本 10,.cf 文件为版本 0 未定义本地邮件程序必须设置 QueueDirectory(Q)选项
通过执行:cp sendmail.cf submit.cf(来自这里的建议)解决了这个问题,现在我可以再次使用 mailx 发送邮件了。
顺便提一下,服务器也没有安装 sendmail-cf pkg。
希望这会有所帮助,只是想对这些尝试的步骤说声“谢谢”。