Jak sprawić, aby cron wysłał mi konto @gmail


40

Mam kilka zadań CRON, które czasami generują błąd i chciałbym otrzymać powiadomienie na moim „prawdziwym” koncie e-mail, ponieważ nie używam skrzynki pocztowej użytkownika w moim laptopie z Ubuntu, ale CRON (a może to postfiks) próbuje wysłać e-mail do lokalnego konta root.

Wiem, że mogę dodać zmienną MAILTO do crontab:

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

Ale wydaje się, że nie zwraca na to uwagi

Próbowałem także dodać mój e-mail do /etc/aliasespliku i uruchomićnewaliases

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

jednak za każdym razem, gdy cron chce wysłać wiadomość e-mail, nadal wysyła ją na 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))

Jakieś sugestie? Używam Ubuntu 10.04, wszystko jest aktualne

Odpowiedzi:


20

Wygląda na to, że skonfigurowałeś smtp.gmail.com jako smarthost dla serwera poczty. Musisz usunąć konfigurację smarthost lub edytować ją, aby serwer mógł w ogóle wysyłać pocztę do świata zewnętrznego.

Konfiguracja, którą masz teraz dla przekazywania wiadomości, wydaje się działać, ale kończy się niepowodzeniem, ponieważ smtp.gmail.com odrzuca wiadomość.

Aktualizacja : do wglądu w przyszłości problem polegał na /etc/mailnametym, że wymieniono nazwę, której nie ma na mydestinationsliście postfiksów. Spowodowało to, że wszystkie wiadomości e-mail zostały uznane za obce, a poczta została pominięta /etc/aliases.


Na razie ignoruję błąd TLS i koncentruję się na tym, że ostatni wiersz w mail.log mówi: postfix / smtp [4120]: D985B310: to = <root@144-68-247-190.fibertel.com .ar> więc cron wciąż próbuje wysłać e-mailem moje konto root zamiast konta Gmail, bałem się, że pozostawienie odpowiedzi gmail w pytaniu byłoby mylące, ale nie chciałem zbytnio go zmieniać, aby nie stracić cennego Informacja. Spróbuję teraz naprawić błąd TLS, ale jestem pewien, że nie powinno to mieć nic wspólnego z niewłaściwym problemem miejsca docelowego
Ricardo Reyes

Czy możesz dołączyć plik main.cf do postfiksa? Podejrzewam, że Twoja instancja Postfiksa uważa, że ​​poczta nie jest lokalna na początku, tylko plik lokalny jest dotknięty plikiem aliasów
Ressu

Oto mój postfix.cfg: cl1p.net/postfix Próbowałem usunąć opcję smarthost , ale zmieniła ona tylko komunikat o błędzie Gmaila, ponieważ mój adres IP nie został poprawnie rozwiązany. Pamiętaj, że to nie jest serwer, to tylko mój osobisty laptop, a jedyne wiadomości e-mail, które muszę dostarczyć, to powiadomienia cron na moje konto Gmail. Dzięki.
Ricardo Reyes,

1
Hmm .. czy twoja / etc / mailname zawiera twoją nazwę hosta? z jakiegoś powodu postfix wydaje się myśleć, że nazywa się 144-68-247-190.fibertel.com.ar zamiast ricardo-laptop. Co również mówi hostnamepolecenie?
Ressu,

Postfix musi być skonfigurowany jako pełny serwer pocztowy, a nie jako satelita do Gmaila. W przeciwnym razie wystąpi problem z uwierzytelnieniem, ponieważ nadawca nie jest użytkownikiem Gmaila.
txwikinger

1

Rozwiązanie wyodrębnione z pytania

(dzięki Ressu )

Problem dotyczył pliku /etc/mailname

Ten plik został utworzony przez instalator Ubuntu i zawiera niepoprawną nazwę serwera. Gdy zmieniłem go tak, by pasował do postfiksu „ricardo-laptop”, zdałem sobie sprawę, że e-maile były przeznaczone do dostarczania lokalnego i zacząłem stosować aliasy


0

pomyślałem, że dodam do ludzi, którzy odkryją to tak jak ja. Łatwą alternatywą, jeśli chcesz, aby cała poczta z konta głównego była uruchomiona, to polecenie:

sudo nano ~ / .forward

Następnie możesz wpisać jeden e-mail lub oddzielić więcej niż jeden przecinkami. Spowoduje to przekazanie wszystkich e-maili użytkownika root (zakładając, że używasz użytkownika root) na adresy e-mail w tym pliku.

Po dodaniu wiadomości e-mail naciśnij Ctrl + X, a następnie Y, aby zapisać zmiany.


to umieszcza plik w domu mojego użytkownika, a nie root?
endolith

@endolith: Poprawnie. Możesz sudo nan ~root/.forwardzamiast tego chcieć .
Flimm,

1
ale używasz sudo do utworzenia pliku w domu użytkownika?
endolith
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.