从 cron 脚本设置向用户发送本地邮件

从 cron 脚本设置向用户发送本地邮件

我的 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 的优点...

答案4

您需要的是一个 SMTP 服务器、一个邮件传输代理

您只需安装opensmtpd并启动该服务即可。默认配置是做本地邮件投递。

相关内容