Lek*_*eyn 20 email sendmail mail-transport-agent
在我的笔记本电脑上,我设置了一个执行每周工作的 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"
Run Code Online (Sandbox Code Playgroud)
那行得通……除非执行脚本的用户不是“彼得”。这个想法的继承者是一个“小型”C 程序femtomail。从它的自述文件:
femtomail - 支持 Maildir 的最小 MDA
femtomail 是用于本地邮件的最小邮件传递代理 (MDA)。从标准输入接受邮件并放置在用户的 Maildir 框中。该软件旨在用于单用户计算机。
远程投递、守护、发件人验证等未实现,由于其复杂性,也不会实现。femtomail 的编写不是因为邮件软件不存在,而是因为现有软件对于将 cron 邮件发送给本地用户的简单任务来说太大了。
femtomail的工作流程:
- 更改进程用户和组。
- 在邮件目录中创建一个具有唯一文件名的新文件。
- 将
Received标题写入文件。- 将数据从标准输入传递到文件。
- 出口。
源代码和安装说明可从https://git.lekensteyn.nl/femtomail/ 获得。