Wie kann ich mir von crontab eine E-Mail mit der Ausgabe seiner Jobs schicken lassen? Ich habe [email protected]
über den Jobs, aber es funktioniert nicht.
Ich weiß, dass ich etwas wie Postfix oder Sendmail verwenden muss, aber für mein Leben kann ich nicht herausfinden, wie ich das erreichen kann. Ich habe nach einer einfachen Anleitung zum Einrichten von Postfix gesucht und gesucht, aber alle sind wahnsinnig kompliziert und erwarten, dass Sie einen ganzen Server einrichten, um E-Mails zu senden und zu empfangen und alle Begriffe zu kennen (z. B. was ist ein Domainname?) für ausgehende E-Mails?).
Ich möchte nur eine E-Mail von crontab erhalten. Warum ist das so schwierig?
Zusätzliche Information:
Meine crontab-Datei sieht so aus:
[email protected]
1 0 * * * ~/Desktop/toskymesh.sh
59 6 * * * ~/Desktop/tooptus.sh
0 3 * * * snapraid sync
Weitere Zusatzinformationen:
Die Ausgabe von ps -ef | grep '[s]endmail'
root 6840 1370 0 10:26 ? 00:00:00 sendmail: MTA: accepting connections
Ich weiß sicher, dass cron funktioniert, aber ich teste den Mail-Befehl echo Test | mail -s Test [email protected]
trotzdem mit.
sendmail setup
. Viel Glück!mail
. In einem von ihnen heißt es:Diagnostic-Code: SMTP; 553 5.7.1 [BL21] Connections will not be accepted from [MyIPRedacted], because the ip is in Spamhaus's list; see http://postmaster.yahoo.com/550-bl23.html
Bedeutet dies, dass der Befehl funktioniert, aber Yahoo die Mail blockiert?http://webmasters.stackexchange.com
? Sie können Ihnen wahrscheinlich besser oder sogar besser helfen,chat.stackexchange.com/rooms/524/webmasters
wenn anscheinend alle Fragen willkommen sind (hm ... Sie brauchen möglicherweise mehr Repräsentanten, um einzusteigen, sind Sie auf einer anderen Stack-Exchange-Site?). Viel Glück.Antworten:
Am Ende habe ich verwendet
sSMTP
. Es ist viel einfacher als entwederPostfix
odersendmail
und erledigt die Arbeit wunderbar.Weitere Informationen zur Verwendung von sSMTP mit Yahoo Mail finden Sie hier (keine Sorge, es ist weitaus weniger komplex als es aussieht):
Verwenden Sie Synaptic, um ssmtp herunterzuladen. Alternativ könntest du auch rennen
sudo apt-get install ssmtp
.Öffnen Sie die Konfigurationsdatei unter /etc/ssmtp/ssmtp.conf.
Lass die Konfiguration so aussehen:
Erstellen Sie die Datei cert.pem mit OpenSSL. Ich habe den Befehl verwendet
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 9999 -nodes
(mehr Infos hier ). Sie können die Datei an eine beliebige Stelle kleben, aber ich habe sie einfach in ~ / eingelegt. Stellen Sie sicher, dass Sie dieTLS_CA_File=
Linie in der Datei ssmtp.conf auf die richtige Position verweisen .Öffnen Sie die Datei
/etc/ssmtp/revaliases
und fügen Sie die Zeile hinzu[yourPCUsername]:[[email protected]]:smtp.mail.yahoo.com:587
. Wenn Sie als root ausgeführt werden, müssen Sie vermutlich eine weitere Zeile hinzufügen, in der Ihr Name durch 'root' ersetzt wird.Das war's, du kannst loslegen! Zum Testen besteht der einfachste Weg (IMO) darin, eine Datei mit den folgenden Inhalten zu erstellen:
sendmail -V
.cat fileWithEmailInIt.txt | sendmail -i -t
, warten Sie einige Sekunden (10-30) und überprüfen Sie Ihre E-Mails!Ersetzen
[[email protected]]
Sie dies natürlich durch Ihre E-Mail-Adresse (ohne Klammern) und[yourRealYahooPassword]
durch Ihr Yahoo Mail-Passwort (ebenfalls ohne Klammern).Zusätzlicher Hinweis: Wenn Sie Probleme mit Google Mail haben, versuchen Sie Option 1 dieser Antwort (danke an Ben Creasy für diese Informationen).
quelle
hostname
wie derzeit angezeigt). Diese Antwort deutet darauf hin, dass Sie Standardserverzertifikate verwenden können, aber ich habe festgestellt, dass ich keineTLS_CA_File=
Leitung zum Senden über GMail benötige .Installieren Sie Postfix. Es ist komplizierter als die meisten anderen Pakete, aber es ist immer noch nicht kompliziert .
Wählen Sie "Internet Site" und akzeptieren Sie dann alle Standardeinstellungen. Dann müssen wir nur die externen Verbindungen beenden und daraus einen " Null-Client " machen. Führen Sie Folgendes aus:
sudoedit /etc/postfix/main.cf
und suchen Sie dieinet_interfaces
Einstellung (in der Nähe des Endes) und ändern Sie sie inloopback-only
:Und schließlich starte Postfix mit neu
sudo /etc/init.d/postfix restart
(Nachladen geht nicht).Sie haben jetzt eine Postfix-Installation, die keine E-Mails für externe Computer weiterleitet, sondern nur Verbindungen mit 127.0.0.1 (und :: 1 für IPv6) akzeptiert.
Auf einem separaten Hinweis, Ihre cron Linien arbeiten wahrscheinlich nicht , weil Sie mit Bash Ersetzungen in nicht-relative Pfade und Pfade verwenden.
sh
Nicht verstehen ,~
und es könnte nicht einen richtigen hatPATH
Satz. Also ersetze sie durch (ich rate nur die tatsächlichen Pfade):Und wenn Ihre Skripte von einem bestimmten Verzeichnis ausgeführt werden müssen, stellen Sie sicher, dass sie
cd
sich im richtigen Verzeichnis befinden. Gehen Sie nicht davon aus, dasscron
dies am richtigen Ort sein wird, da dies wahrscheinlich nicht der Fall sein wird.quelle
~/Desktop/
.inet_interfaces = localhost
. Loopback-only gab mirpostfix: fatal: config variable inet_interfaces: host not found: loopback-only
Ich hatte sehr viel Glück mit exim4.
(alpine ist nur der Mail-Client, den ich gerne benutze)
Danach rannte ich los
und folgte durch die Eingabeaufforderungen. Diese Seite: https://help.ubuntu.com/community/Exim4 war ebenfalls sehr hilfreich. Ich brauchte ungefähr 10 Minuten, um es zum Laufen zu bringen.
quelle
Aus der sSMTP-Manpage: "Es wird kein Aliasing ausgeführt, das entweder im Benutzeragenten oder im Mailhub ausgeführt werden muss. Es werden auch keine Weiterleitungen berücksichtigt, die auf dem empfangenden Host ausgeführt werden müssen. Es wird insbesondere nicht an Pipelines übermittelt. "
Wenn Sie also alle an root gesendeten Nachrichten in Ihrer externen E-Mail erhalten möchten, ist es eine schlechte Idee, sSMTP zu verwenden, da es keine Aliase unterstützt.
Stattdessen könnten Sie Benutzer Postfix. Es ist immer noch sehr einfach. So verwenden Sie es mit Google Mail als SMTP zum Senden von Nachrichten:
Allgemeine Art der Mailkonfiguration: Satellitensystem
Systemmailname : Der bevorzugte vollqualifizierte Name des Mailservers, z. B. mail.example.com
SMTP-Relay-Host (leer für keine): [smtp.gmail.com]: 587
Fügen Sie zu /etc/postfix/main.cf hinzu:
Erstellen Sie / etc / postfix / sasl / sasl_passwd
Dann:
Bearbeiten Sie / etc / aliases und fügen Sie Folgendes hinzu:
Führen Sie zum Schluss Folgendes aus:
Jetzt können Sie testen, ob die Umleitung funktioniert:
Ich hoffe es hilft.
quelle