我有一些通过 cron 运行的家庭系统监控脚本,这些脚本将创建输出,然后将邮件发送给运行该脚本的用户。我想将此邮件重定向到我的 Gmail(或插入任何其他第三方邮件)帐户。
该方法应该
- 能够验证并使用另一个 SMTP 服务器(例如 Gmail 的 SMTP 本身),而不是直接通过 sendmail 等发送,因为如果我不使用合法服务,Gmail 等服务可能会将我的邮件标记为垃圾邮件。
- 如果失败,请重试发送,因为它将通过家庭互联网连接运行。
答案1
执行此操作的一种非常简单的方法(它可能无法满足您的所有要求,它是如此简单)是使用.forward
运行 cron 作业的用户 ID 的 $HOME 目录中的文件。
您刚刚在 .forward 中输入了第 3 方电子邮件地址,看起来sendmail 完成剩下的工作。
您可以使用 .forward 通过程序运行电子邮件。我的 .forward 文件是这样写的:“|exec /usr/bin/procmail”
procmail 是一个相当原始的邮件过滤程序,对我来说已经足够好了。
答案2
安装本地 MTA,例如exim
,并将其配置为使用smarthost
,在本例中是 ISP 的邮件服务器或 google 的邮件服务器(如果您担心家庭 IP 的 SMTP 信誉,后者可能更好)。
然后,为您的用户设置转发。有很多方法可以做到这一点。在exim
Debian 上,您可以编辑/etc/aliases
和设置.另一种方法是创建包含,但这意味着您需要在发送邮件时可用(对我来说并非总是如此,我的仅在登录时安装)。foo: [email protected]
~/.forward
[email protected]
$HOME
$HOME
一个好的 MTA(例如exim
)将支持智能主机并进行重试。