Email
在本地傳遞郵件的最小 MTA(對於 cron)?
在我的筆記型電腦上,我設置了一個執行每週工作的 cron。如果有什麼要報告的,我想收到一封電子郵件。現在我正在使用 KMail 作為 MUA,它能夠從位於 的 Maildir 目錄中讀取郵件
~/.local/share/local-mail
。因此,我希望將本地郵件傳遞到該文件夾(具有 Maildir 結構)。我希望已經存在一個具有
sendmail
介面的死簡單程序(echo "$REPORT" | mail -s "$SUBJECT" "$ME"
可以使用它)。安裝 exim 或將郵件轉發到我的遠端郵件伺服器被認為是矯枉過正。問題從伺服器轉發所有郵件的最簡單方法?似乎針對不適合我需要的遠端轉發(我需要本地傳遞)。這個舊的 Gentoo 執行緒最終在 Perl 中製作了一個舊腳本。肯定存在一個經過深思熟慮的、極其簡單的程序嗎?
有什麼建議嗎?我正在使用 Arch Linux。
由於找不到現有的小程序,我決定自己編寫一個。最初,我想出了:
#!/bin/bash # Simple sendmail # filename per spec at http://cr.yp.to/proto/maildir.html rand=$((RANDOM % 1000)) msgname=$(date +%s).P$$R$rand.$(hostname | tr '/:' '\057\072') # Safety measure: do not overwrite existing mail set -o noclobber cat > ~peter/".local/share/local-mail/inbox/new/$msgname"
那行得通……除非執行腳本的使用者不是“彼得”。這個想法的繼承者是一個“小型”C 程序,femtomail。從它的自述文件中:
femtomail - 支持 Maildir 的最小 MDA
femtomail 是本地郵件的最小郵件傳遞代理 (MDA)。郵件從標準輸入接受並放置在使用者的 Maildir 框中。該軟體適用於單使用者電腦。
遠端投遞、守護程序、發件人驗證等沒有實現,由於其複雜性,也不會實現。femtomail 不是因為郵件軟體不存在而編寫的,而是因為現有軟體對於將 cron 郵件發送給本地使用者的簡單任務來說太大了。
femtomail的工作流程:
- 更改程序使用者和組。
- 在郵件目錄中創建一個具有唯一文件名的新文件。
Received
將標題寫入文件。- 將數據從標準輸入傳遞到文件。
- 出口。
原始碼和安裝說明可在https://git.lekensteyn.nl/femtomail/獲得。