中继邮件 (nullmailer)
概述
Nullmailer 是轻量级且简单的 MTA(邮件传输代理),允许您将本地电子邮件中继到另一台服务器。如果您在家中运行私有服务器,并且只想通过 ISP 的邮件服务器将来自 cron 等的通知中继到您的外部邮箱,这将非常有用。 Nullmailer 还允许您重写信封发件人,这对于通过许多 ISP 现在正在进行的垃圾邮件检查是必需的。
安装
Nullmailer 只能在 testing
分支中找到。 如何启用 Testing 仓库
apk add nullmailer@testing
配置
Nullmailer 使用 /etc/nullmailer/ 下的各个文件进行配置,每个设置一个文件。
当邮件发送给任何本地用户时,例如“root”、“me@localhost”等,邮件可以发送到一些外部地址或地址(作为逗号分隔的列表)代替
内容 /etc/nullmailer/adminaddr
当 nullmailer 将邮件中继到远程服务器时,可以覆盖信封发件人,因为如果信封发件人包含不存在的域(如 root@localhost.example),邮件通常会被拒绝(请注意,信封发件人与 From: 标头不同,From: 标头仍然是 root@localhost.example,但这通常不会被拒绝)
内容 /etc/nullmailer/allmailfrom
每当 nullmailer 处理没有主机名或域名的地址时,可以使用 defaulthost 和 defaultdomain 文件来设置默认值,但这也可以使用一个文件完成。因此,来自:me 和 发送到:me 将变为 来自:me@localhost.example 和 发送到:me@localhost.example。请注意,这适用于标头,标头仅供参考,并在邮件客户端中显示。信封发件人和收件人仍然必须使用上面解释的配置文件正确设置。
理想情况下,您应该拥有并控制您可以使用的域,但如果不是,则将其设置为保证不存在的域,例如 localhost.example。不要只是选择一些随机的不存在的域,因为有人将来可能会注册它
内容 /etc/nullmailer/me
要配置邮件发送到的中继服务器,请为每个远程服务器添加一行。通常这将是您的 ISP 的邮件服务器。可选地,nullmailer 支持不同的身份验证方案
内容 /etc/nullmailer/remotes
日志记录
Nullmailer 仅记录到 stdout 和 stderr,这意味着 syslog 无法轻易使用。相反,可以使 OpenRC 将 stdout 和 stderr 写入日志文件
内容 /etc/conf.d/nullmailer
由于 nullmailer 以同名用户身份运行,因此它无法自行创建日志文件。只需手动创建日志文件即可
touch /var/log/mail.log /var/log/mail.err chown nullmailer:adm /var/log/mail.log /var/log/mail.err chmod 0640 /var/log/mail.log /var/log/mail.err
测试
要测试配置,只需向 root 和一些现有地址等发送一些测试邮件。
echo -e "Subject: Nullmailer testing\n\nSending to root." | sendmail root echo -e "Subject: Nullmailer testing\n\nSending to me." | sendmail me@example.com