我的 cron.daily 脚本中的一行无法按预期工作。我没有特别的系统中的smtp邮件服务器,这一行 rsync -avun --inplace /oneuser/file.xls /otheruser/file.xls|邮件-s“$0$?”提供Cannot open mail:25
消息 设置本地邮件子系统需要什么?与电子邮件服务器设置相比,我更喜欢简单的邮箱。我喜欢其他登录用户可以通过mail
命令读取 cron (root) 消息。我发现了类似的问题,但没有在这里找到答案如何设置本地邮件检索和投递?
当我尝试使用命令向用户发送邮件时,mail
我得到了点
EOT
[root@localhost etc]# send-mail: Cannot open mail:25
答案1
我建议您只安装postfix
本地邮件传送。至少在 Ubuntu 上,它会交互式地询问您的设置,其中包括仅本地交付选项。
此外,您可以创建一个mailboy
用于邮件传递的本地帐户,并允许所有人阅读传递到该帐户的邮件。
为了将邮件root
发送到mailboy
,编辑/etc/aliases
并添加行:
root: mailboy@localhost
这样做后运行newaliases
。
答案2
我的日志中也有此消息,ssmtp 似乎是发送 Fedora 19+ 邮件的新默认设置,或者至少显示安装在我的 Fedora 19 上。如果您在端口 25 上运行其他 mta,ssmtp 会给您这个错误。但我写的是,更多的是,未发送的消息会进入一个 dead.letter 文件,在我的例子中位于 /root 上,所以如果你想知道未发送的电子邮件发生了什么,它位于一个名为 dead.letter 的文件中。
答案3
我使用的是 Fedora 20,突然在新安装的系统上出现此错误。所有以前的主机(> 70)都能够这样做:
回声“你好世界”|邮件-s“敬礼”[电子邮件受保护]
脚本等非常有用。
现在命令行调用开始失败
sSMTP[3144]:无法连接到“邮件”端口 25。 sSMTP[3144]:无法打开邮件:25
sendmail 的日志提示该命令不喜欢 -bd 选项(“作为守护程序运行”)。为何如此 ?当然,如果没有守护进程,它不会侦听 25/tcp 从而导致错误。
现在,按照命令本身进行操作。 ssmtp 没有运行原始的 sendmail 二进制文件,而是出现并取代了它。
/usr/sbin/sendmail -> /etc/alternatives/mta -> /usr/sbin/sendmail.ssmtp
代替
/usr/sbin/sendmail -> /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail
现在,ssmtp 根据其手册页非常简单,旨在以其最简单的功能替换 sendmail - 并且不支持 -bd 选项。因此,没有端口 25。
此处所有中断 - 与端口 25 通信的命令将退出。
我卸载了 (yum remove ssmtp) - 这导致原来的 sendmail 恢复其角色 - 再次启动该服务会启用端口 25。
现在邮寄又以原来的方式恢复正常了。
稍后我将看看 ssmtp 的优点...