我如何让Cron通过电子邮件发送我的@gmail帐户


40

我有几个cron作业,有时会产生错误输出,并希望在我的“真实”电子邮件帐户中获得通知,因为我不在Ubuntu笔记本电脑中使用用户的邮箱,而是cron(或者也许是后缀)一直尝试通过电子邮件发送本地根帐户。

我知道我可以将MAILTO变量添加到crontab中:

ricardo@ricardo-laptop:~$ sudo crontab -l
MAILTO=redacted@gmail.com
# m h  dom mon dow   command
*/5 * * * * /home/ricardo/mrtg/cfg/run.sh

但这似乎没有引起任何注意

我还尝试将电子邮件添加到/etc/aliases文件中并运行newaliases

ricardo@ricardo-laptop:~$ cat /etc/aliases
# See man 5 aliases for format
postmaster:    root
root:          redacted@gmail.com
ricardo:       redacted@gmail.com

尽管如此,无论何时cron要发送电子邮件,它仍会将其发送到root@my.domain.com

ricardo@ricardo-laptop:/var/log$ tail mail.log
Aug  3 16:25:01 ricardo-laptop postfix/pickup[2002]: D985B310: uid=0 from=<root>
Aug  3 16:25:01 ricardo-laptop postfix/cleanup[4117]: D985B310: message-id=<20100803192501.D985B310@ricardo-laptop>
Aug  3 16:25:01 ricardo-laptop postfix/qmgr[2003]: D985B310: from=<root@144-68-247-190.fibertel.com.ar>, size=762, nrcpt=1 (queue active)
Aug  3 16:25:03 ricardo-laptop postfix/smtp[4120]: D985B310: to=<root@144-68-247-190.fibertel.com.ar>, orig_to=<root>, relay=smtp.gmail.com[74.125.157.109]:25, delay=1.5, delays=0.38/0.02/0.9/0.18, dsn=5.7.0, status=bounced (host smtp.gmail.com[74.125.157.109] said: 530 5.7.0 Must issue a STARTTLS command first. d1sm12275173anc.19 (in reply to MAIL FROM command))

有什么建议么?我正在运行Ubuntu 10.04,所有内容均为最新

Answers:


20

似乎您已将smtp.gmail.com配置为邮件服务器的smarthost。您需要删除或编辑smarthost配置,以便服务器完全能够将邮件发送到外界。

您现在用于邮件转发的配置似乎正在运行,但是由于smtp.gmail.com拒绝了邮件而失败。

更新:供以后参考,问题在于/etc/mailname其中列出了不在mydestinations后缀列表中的名称。这导致所有邮件都被视为外部邮件,并且绕过了邮件/etc/aliases处理过程。


我现在暂时忽略TLS错误,而是集中在mail.log的最后一行说:postfix / smtp [4120]:D985B310:to = <root@144-68-247-190.fibertel.com .ar>,因此cron仍然尝试通过电子邮件发送我的root帐户而不是我的gmail帐户,我担心在问题中留下gmail的回复会造成混淆,但是我不想对其进行太多更改,所以我不会失去宝贵的价值信息。我现在将尝试修复TLS错误,但我相信它应该与错误的目的地问题无关
Ricardo Reyes 2010年

您可以将main.cf包含在postfix中吗?我怀疑您的postfix实例认为该邮件不是本地开始的,只有本地邮件会受到别名文件的影响
Ressu 2010年

这是我的postfix.cfg:cl1p.net/postfix 我尝试删除了smarthost选项,但是由于我的IP无法正确解析,它仅更改了Gmail的错误消息。请记住,这不是服务器,只是我的个人笔记本电脑,我需要向我自己的gmail帐户发送的cron警报是我唯一需要发送的电子邮件。谢谢。
里卡多·雷耶斯

1
嗯..您的/ etc / mailname中是否有您的主机名?由于某种原因,后缀似乎认为它称为144-68-247-190.fibertel.com.ar而不是ricardo-laptop。另外,hostname命令说什么?
Ressu

需要将Postfix配置为完整的邮件服务器,而不是将其配置为gmail的附属服务器。否则,将存在身份验证问题,因为发件人不是gmail用户。
txwikinger 2010年

1

从问题中提取的解决方案

(感谢Ressu

问题出在文件上 /etc/mailname

该文件由Ubuntu安装程序创建,并且包含错​​误的服务器名称。一旦我将其更改为与“ ricardo-laptop”后缀匹配,便意识到该电子邮件旨在用于本地传递,并开始遵循别名


0

我以为我会像我一样发现这个人。如果要从根帐户发送所有邮件,一个简单的替代方法是运行以下命令:

须藤纳米〜/ .forward

然后,您可以放入一封电子邮件,也可以用逗号分隔多个电子邮件。这会将您所有的根电子邮件(假设您使用的是根)转发到此文件中的电子邮件地址。

添加电子邮件后,请按Ctrl + X,然后按Y保存更改。


这会将文件放在我用户的家中,而不是root用户的文件中?
endolith '16

@endolith:正确。您可能想要sudo nan ~root/.forward代替。
Flimm

1
但是您正在使用sudo在用户家中创建文件吗?
endolith
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.