從 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 上。但我更要說的是,未發送的郵件會存入一個dead.letter 文件,在我的例子中位於/root 上,所以如果您想知道未發送的電子郵件發生了什麼,這些郵件位於一個在名為dead.letter 的檔案中。

答案3

我使用的是 Fedora 20,突然在新安裝的系統上出現此錯誤。所有先前的主機(> 70)都能夠這樣做:

迴聲“你好世界”|郵件-s“敬禮”[電子郵件受保護]

腳本等非常有用。

現在命令列呼叫開始失敗

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並啟動服務即可。預設配置是做本地郵件投遞。

相關內容