Как сделать так, чтобы cron отправлял по электронной почте мою учетную запись @gmail

41

У меня есть пара заданий cron, которые иногда выдают ошибку, и я хотел бы получить уведомление в моей «реальной» учетной записи электронной почты, так как я не использую почтовый ящик моего пользователя на моем ноутбуке с Ubuntu, а cron (или это может быть постфикс) продолжает пытаться по электронной почте локальной учетной записи root.

Я знаю, что могу добавить переменную 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 со всем современным

Рикардо Рейес
источник

Ответы:

20

Похоже, что вы настроили smtp.gmail.com в качестве смарт-хоста для почтового сервера. Вам нужно удалить конфигурацию smarthost или отредактировать ее так, чтобы ваш сервер вообще мог отправлять почту во внешний мир.

Кажется, что конфигурация для пересылки почты работает, но не работает, потому что smtp.gmail.com отклоняет почту.

Обновление : для дальнейшего использования проблема заключалась в том, /etc/mailnameчто в списке указывалось имя, которого не было в mydestinationsсписке постфикса. Это привело к тому, что все письма стали считаться чужими, а почта была обойдена /etc/aliases.

Ressu
источник
Сейчас я игнорирую ошибку TLS и концентрируюсь на том, что последняя строка в mail.log говорит: postfix / smtp [4120]: D985B310: to = <root@144-68-247-190.fibertel.com .ar> Таким образом, cron все еще пытается отправить по электронной почте мою корневую учетную запись вместо моей учетной записи gmail. Я боялся, что оставив ответ gmail в вопросе, может привести к путанице, но я не хотел менять его слишком сильно, чтобы не потерять ценный Информация. Сейчас я попытаюсь исправить ошибку TLS, но я уверен, что она не должна иметь ничего общего с проблемой неправильного назначения
Рикардо Рейес,
Не могли бы вы включить ваш main.cf для постфикса. Я подозреваю, что ваш экземпляр postfix считает, что почта не является локальной, для начала файл aliases затрагивает только локальную почту
Ressu
Вот мой postfix.cfg: cl1p.net/postfix Я попытался удалить параметр smarthost, но он только изменил сообщение об ошибке Gmail, так как мой ip не разрешается правильно. Имейте в виду, что это не сервер, это всего лишь мой личный ноутбук, и единственные электронные письма, которые мне нужно доставить, - это cron-оповещения на мою учетную запись gmail. Спасибо.
Рикардо Рейес
1
Хм .. в вашем / etc / mailname есть ваше имя хоста? По какой-то причине postfix считает, что он называется 144-68-247-190.fibertel.com.ar вместо ricardo-laptop. Кроме того, что говорит hostnameкоманда?
Ressu
Postfix должен быть настроен как полноценный почтовый сервер, а не как сателлит для gmail. В противном случае возникнет проблема аутентификации, поскольку отправитель не является пользователем gmail.
txwikinger
1

Решение извлечено из вопроса

(спасибо Рессу )

Проблема была с файлом /etc/mailname

Этот файл был создан установщиком Ubuntu и содержал неправильное имя сервера. Как только я изменил его в соответствии с постфиксом «ricardo-laptop», он понял, что письма предназначены для локальной доставки, и начал следовать псевдонимам.

оборота Гунтберт
источник
0

думал, что я добавлю для людей, которые узнают это, как я. Простая альтернатива, если вы хотите, чтобы вся ваша почта была от вашей корневой учетной записи, - это запустить эту команду:

sudo nano ~ / .forward

Затем вы можете указать одно электронное письмо или разделить несколько запятыми. Это перенаправит все ваши корневые письма (при условии, что вы используете root) на адреса электронной почты в этом файле.

После того, как вы добавили электронные письма, нажмите Ctrl + X, затем Y, чтобы сохранить изменения.

Фил Янг
источник
это помещает файл в дом моего пользователя, хотя, не root?
эндолит
@ Эндолит: Верно. Вы можете хотеть sudo nan ~root/.forwardвместо этого.
Flimm
1
но вы используете sudo для создания файла в доме пользователя?
Эндолит