ssmtp - es ist ein Dienstprogramm zum Senden von E-Mails, mit dem Sie die Anmeldeinformationen und Servereinstellungen für das Senden von E-Mails mit konfigurieren können cron. Wenn Sie Benachrichtigungen über geplante Aufgaben erhalten möchten, das Senden von Berichten konfigurieren oder einfach nur E-Mail-Nachrichten aus Ihren Skripts senden möchten, konfigurieren Sie Folgendes ssmtp mit cron kann nützlich sein.
Beginnen wir mit der Installation des Dienstprogramms ssmtp. Verwenden Sie den folgenden Befehl:
sudo apt-get install ssmtp
Der nächste Schritt besteht darin, die Konfigurationsdatei einzurichten ssmtp. Öffnen Sie die Datei /etc/ssmtp/ssmtp.conf und nehmen Sie die folgenden Änderungen vor:
[email protected]=smtp.example.com:[email protected]=your_passwordUseSTARTTLS=YES
Achtung: Ersetzen [email protected] , smtp.example.com , [email protected] und your_password sind die entsprechenden Werte, die Ihre E-Mails und Anmeldeinformationen anzeigen.
Speichern Sie die Änderungen, und schließen Sie die Datei.
Jetzt, da ssmtp eingerichtet ist, können Sie überprüfen, ob alles korrekt funktioniert, indem Sie eine Testbrief senden. Verwenden Sie den Befehl:
echo "Testbrief| / ssmtp [email protected]
Stellen Sie sicher, dass Sie ersetzen [email protected] ihre E-Mail-Adresse.
Sie sollten eine E-Mail-Zustellungsnachricht erhalten. Wenn alles erfolgreich war, ist die Konfiguration von ssmtp für Cron abgeschlossen und Sie können jetzt das Senden von E-Mails aus Ihren Skripten konfigurieren.
So konfigurieren Sie ssmtp für Cron - Vollständige Anleitung
Wenn Sie das Senden von E-Mails über ssmtp mit Cron konfigurieren möchten, müssen Sie einige Schritte ausführen. In diesem Handbuch wird der Vorgang und die Konfiguration von ssmtp detailliert beschrieben.
1. Installieren von ssmtp:
$ sudo apt-get install ssmtp
2. Die Konfiguration der Datei /etc/ssmtp/ssmtp.conf:
$ sudo nano /etc/ssmtp/ssmtp.conf
Geben Sie die folgenden Informationen ein:
[email protected]=smtp.gmail.com:[email protected]=your_passwordUseSTARTTLS=YES
Ersetzen Sie "[email protected] " an Ihre E-Mail-Adresse und "your_password" an Ihr Passwort.
3. Konfiguration der Datei /etc/ssmtp/revaliases:
$ sudo nano /etc/ssmtp/revaliases
Geben Sie die folgenden Informationen ein:
root:[email protected]:smtp.gmail.com:587
Ersetzen Sie "[email protected] " an Ihre E-Mail-Adresse.
4. Überprüfen des Versendens einer E-Mail:
$ echo "Тестовое сообщение" | sudo ssmtp [email protected]
Ersetzen Sie "[email protected] " an die Adresse des E-Mail-Empfängers.
5. Cron einrichten:
$ crontab -e
Fügen Sie der Datei die folgende Zeile hinzu:
* * * * * echo "Тестовое сообщение" | /usr/sbin/ssmtp [email protected]
Ersetzen Sie "[email protected] " an die Adresse des E-Mail-Empfängers. Dies bedeutet, dass jede Minute eine Testnachricht gesendet wird.
Jetzt haben Sie ssmtp vollständig für die Verwendung mit cron konfiguriert. Sie können verschiedene Aufgaben einrichten und die E-Mail-Empfängeradressen in Cron angeben, um E-Mail-Benachrichtigungen zu erhalten, wenn diese Aufgaben ausgeführt werden.
Installieren von ssmtp und cron
Bevor Sie ssmtp und cron konfigurieren, stellen Sie sicher, dass Sie Zugriff auf das Terminal und Administratorrechte auf Ihrem System haben.
Schritt 1: Installieren von ssmtp
- Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um das ssmtp-Paket zu installieren: sudo apt-get install ssmtp
- Während der Installation werden Sie möglicherweise aufgefordert, die Einstellungen für ssmtp als Standardsender anzugeben. Hier können Sie Ihre E-Mail eingeben (zB [email protected] ), wenn Sie möchten.
Schritt 2: Konfigurieren von ssmtp
- Öffnen Sie die ssmtp-Konfigurationsdatei mit dem Befehl: sudo nano /etc/ssmtp/ssmtp.conf
- Ändern Sie die folgenden Zeilen in der Datei:
- root= ihre E-Mail-Adresse - Hier können Sie Ihre E-Mail angeben (z. B. [email protected] ) als Standardabsender.
- mailhub=smtp.gmail.com:587 - hier geben Sie die Adresse des SMTP-Servers und die Portnummer an. Wenn Sie Gmail verwenden, lassen Sie diese Zeile unverändert.
- rewriteDomain=gmail.com - geben Sie hier einen Teil Ihrer E-Mail nach dem @ -Zeichen ein (z. B. gmail.com ), wenn Sie einen anderen E-Mail-Dienst verwenden, ändern Sie diese Zeile entsprechend.
- AuthUser=Ihre E-Mail-Adresse - hier sollten Sie Ihre E-Mail angeben (z. B. [email protected] ).
- AuthPass=Passwort für Ihre E-Mail - geben Sie hier das Passwort für Ihre E-Mail ein.
- UseTLS=YES - stellen Sie YES ein, um eine sichere Verbindung zu verwenden.
- UseSTARTTLS=YES - setzen Sie den Wert auf YES, um STARTTLS zu verwenden.
- Speichern Sie die Änderungen, und schließen Sie die Datei.
Schritt 3: Cron einrichten
- Öffnen Sie die cron-Datei mit dem Befehl: crontab -e
- Fügen Sie der Datei eine neue Zeile hinzu und geben Sie die Uhrzeit und den Befehl an, den Sie ausführen möchten. Beispiel: * * * * * command
- Ersetzen Sie "command" durch den tatsächlichen Befehl, den Sie ausführen möchten. Zum Beispiel, um eine E-Mail mit ssmtp zu senden: * * * * * echo "E-Mail-Text| / ssmtp [email protected]
- Speichern Sie die Änderungen, und schließen Sie die Datei.
Sie haben jetzt ssmtp mit Cron-Unterstützung installiert und konfiguriert, um E-Mails automatisch zu senden.
Erstellen einer ssmtp-Konfigurationsdatei
Um ssmtp einzurichten, müssen Sie eine Konfigurationsdatei im Verzeichnis erstellen /etc/ssmtp/. In dieser Datei geben Sie die Verbindungseinstellungen für Ihren SMTP-Server an.
1. Öffnen Sie ein Terminal und geben Sie den Befehl ein:
- sudo nano /etc/ssmtp/ssmtp.conf
2. Geben Sie im geöffneten Editor die folgenden Konfigurationszeichenfolgen ein:
- root=ваш[email protected] - geben Sie hier die E-Mail-Adresse an, von der die Nachrichten gesendet werden sollen.
- mailhub=smtp.gmail.com:587 - Geben Sie hier die Adresse und den Port Ihres SMTP-Servers ein, in diesem Fall wird der Gmail-Server verwendet.
- AuthUser=ваш[email protected] - geben Sie hier die E-Mail-Adresse an, von der die Nachrichten gesendet werden sollen.
- AuthPass=Ihr Passwort - Geben Sie hier das Passwort Ihrer E-Mail-Adresse ein.
- UseSTARTTLS=YES - Diese Option aktiviert das sichere Datenübertragungsprotokoll STARTTLS.
- FromLineOverride=YES - Diese Option überschreibt den Absender der Nachricht.
3. Drücken Sie Strg+ O und dann die Eingabetaste , um die Änderungen zu speichern.
4. Drücken Sie dann Strg+ X , um den Editor zu verlassen.
Ihre ssmtp-Konfigurationsdatei ist jetzt fertig und Sie können sie verwenden, um E-Mails von Cron zu senden.
Konfigurieren von ssmtp zum Senden von E-Mails
Hier finden Sie eine detaillierte Anleitung zum Konfigurieren von SSMTP zum Senden von E-Mails mit Cron:
-
Installieren Sie das ssmtp-Paket auf Ihrem Server:
sudo apt-get install ssmtp
sudo nano /etc/ssmtp/ssmtp.conf
- mailhub: SMTP-Serveradresse
- hostname: Ihr Hostname
- FromLineOverride: Setzen Sie es auf YES, um die Absenderadresse zu überschreiben
- AuthUser und AuthPass: Wenn Ihr SMTP-Server eine Authentifizierung erfordert, legen Sie die Anmeldeinformationen hier fest
- UseTLS: Setzen Sie es auf YES, wenn Ihr SMTP-Server eine sichere TLS-Verbindung unterstützt
- UseSTARTTLS: setzen Sie es auf YES, wenn Ihr SMTP-Server eine sichere STARTTLS-Verbindung unterstützt
sudo nano /etc/ssmtp/revaliases
root:[email protected]:smtp.server:port
echo "Тестовое письмо" | ssmtp [email protected]
Nachdem Sie diese Schritte ausgeführt haben, muss Ihr Server so konfiguriert sein, dass er E-Mails mit SSMTP über einen SMTP-Server sendet. Dies ist sehr nützlich, wenn Sie das Senden von E-Mails mit Cron einrichten müssen.
Erstellen und Bearbeiten einer Crontab-Datei
Um Cron-Aufträge zu konfigurieren, müssen Sie eine Crontab-Datei erstellen oder bearbeiten, die eine Liste der automatisch geplanten Aufträge enthält.
Verwenden Sie den Befehl zum Erstellen oder Bearbeiten einer crontab-Datei:
- crontab -e - erstellt oder öffnet eine Crontab-Datei zur Bearbeitung
Wenn die Crontab-Datei bereits vorhanden ist und Aufträge enthält, wird sie zur Bearbeitung in einem Texteditor geöffnet. Wenn die Crontab-Datei nicht vorhanden ist, wird eine neue Datei erstellt.
Innerhalb der crontab der Datei muss jeder Auftrag in einer separaten Zeile geschrieben werden und das folgende Format haben:
- * - bedeutet einen beliebigen Wert, z. B. * im Minutenfeld bedeutet "jede Minute"
- befehl - Der vollständige Pfad zu dem Befehl, den Sie ausführen möchten
Jede Zeile in der Crontab-Datei muss einen Auftrag enthalten.
Beispielauftrag zum Ausführen eines Befehls jede Minute:
Nachdem Sie die Crontab-Datei geändert haben, speichern Sie die Datei, und schließen Sie sie.
Konfigurieren von cron zum Ausführen einer Aufgabe mit ssmtp
Führen Sie die folgenden Schritte aus, um die Ausführung einer Aufgabe mit ssmtp in cron zu konfigurieren:
- Installieren Sie ssmtp, indem Sie den Befehl sudo apt-get install ssmtp ausführen.
- Öffnen Sie die ssmtp-Konfigurationsdatei mit dem Befehl sudo nano /etc/ssmtp/ssmtp.conf .
- Konfigurieren Sie die Einstellungen für das Senden von E-Mails, einschließlich SMTP-Server, Port, Anmeldeinformationen und anderer Einstellungen.
- Speichern Sie die Änderungen, und schließen Sie die Datei.
- Erstellen Sie eine neue Cron-Aufgabe, indem Sie den Befehl crontab -e ausführen.
- Fügen Sie der Cron-Datei eine Zeile mit der Beschreibung der Aufgabe hinzu. Zum Beispiel: * * * * * /путь/к/скрипту.ѕһ .
- Speichern Sie die Änderungen, und schließen Sie die Datei.
Die Aufgabe wird nun mit ssmtp ausgeführt, um E-Mail-Benachrichtigungen zu senden.
Überprüfen, ob ssmtp und cron funktionieren
Nachdem Sie ssmtp und cron konfiguriert haben, ist es wichtig, sicherzustellen, dass sie ordnungsgemäß funktionieren. Dazu können Sie mehrere Schritte ausführen:
1. Überprüfen des Versendens von E-Mails:
Erstellen Sie eine Textdatei mit einer Testnachricht wie "test.txt". Führen Sie dann den folgenden Befehl aus, um diese Nachricht an sich selbst per E-Mail zu senden:
Ersetzen Sie "ваш_адрес_почты@example.com " an Ihre echte E-Mail-Adresse. Wenn alles richtig funktioniert hat, sollten Sie diese Nachricht an die angegebene Adresse erhalten.
2. Überprüfen des Cron-Betriebs:
Erstellen Sie ein einfaches Skript, das beispielsweise alle 5 Minuten eine neue Datei im angegebenen Verzeichnis erstellt. Erstellen Sie beispielsweise ein Skript "script.sh" mit folgendem Inhalt:
#!/bin/bashtouch /path/to/directory/newfile.txt
Fügen Sie es dann mit dem Befehl zum cron hinzu:
Fügen Sie der Cron-Datei die folgende Zeile hinzu:
"*/5 * * * * /bin/bash /path/to/script.sh"
Hier "*/5 * * * * " bedeutet, dass das Skript alle 5 Minuten ausgeführt wird. Ersetzen Sie "/path/to/directory" durch den tatsächlichen Pfad zu dem Verzeichnis, in dem die neue Datei erstellt werden soll.
Warten Sie, bis das Skript ausgeführt wird, und überprüfen Sie, ob eine neue Datei im angegebenen Verzeichnis erstellt wurde. Wenn die Datei erstellt wurde, funktioniert cron ordnungsgemäß.
Stellen Sie sicher, dass ssmtp und cron nach der Konfiguration funktionieren, um sicherzustellen, dass alles ordnungsgemäß funktioniert.
Beheben von Problemen bei der Konfiguration von ssmtp und cron
Bei der Konfiguration von ssmtp und cron können bestimmte Probleme auftreten, die Sie behandeln müssen. In diesem Abschnitt werden wir einige häufige Probleme und mögliche Lösungen untersuchen.
1. Das Senden von E-Mails über ssmtp funktioniert nicht:
| Das Problem | Die Entscheidung |
|---|---|
| Fehler "ssmtp: Kann smtp.gmail.com nicht öffnen:587": | Überprüfen Sie, ob eine Internetverbindung auf dem Server vorhanden ist. Stellen Sie sicher, dass der Server Zugriff auf smtp.gmail.com an Port 587. Überprüfen Sie auch, ob die ssmtp-Einstellungen korrekt sind.conf und Authentifizierungsdateien. |
| Eingehende E-Mails werden nicht zugestellt: | Überprüfen Sie, ob die Einstellungen in /etc/aliases korrekt sind und ob ein Mailserver auf dem Server vorhanden ist. Stellen Sie sicher, dass der E-Mail-Server funktioniert und Port 25 öffnet, um E-Mails zu erhalten. Überprüfen Sie auch, ob die Zustellung von E-Mails durch Ihre Firewall blockiert wird. |
2. Cron-Jobs werden nicht ausgeführt:
| Das Problem | Die Entscheidung |
|---|---|
| Cron-Jobs werden nicht rechtzeitig ausgeführt: | Überprüfen Sie, ob die Zeiteinstellungen in cron korrekt sind. Stellen Sie sicher, dass der Benutzer, für den Cron ausgeführt wird, über Berechtigungen zum Ausführen von Aufgaben verfügt. Überprüfen Sie außerdem, ob der Cron-Daemon auf dem Server ausgeführt wird, und starten Sie ihn bei Bedarf neu. |
| Befehle in Cron-Jobs funktionieren nicht: |
3. Fehler in den Protokollen:
| Das Problem | Die Entscheidung |
|---|---|
| Fehler "cannot open /etc/ssmtp/ssmtp.conf: Permission denied": | Stellen Sie sicher, dass der Benutzer, der ssmtp oder cron ausführt, über Leseberechtigungen für die Datei /etc/ssmtp/ssmtp verfügt.conf. Wenn nicht, fügen Sie die erforderlichen Berechtigungen hinzu, oder ändern Sie den Benutzer, unter dem der Prozess gestartet wird. |
| Fehler "send-mail: Mailing to root@localhost: User unknown in virtual alias table": | Überprüfen Sie die Einstellungen in /etc/ssmtp/revaliases und stellen Sie sicher, dass die Adresse des Empfängers korrekt ist. Überprüfen Sie auch die Datei /etc/aliases und stellen Sie sicher, dass die E-Mail-Übermittlungseinstellungen für den Root-Benutzer korrekt eingestellt sind. |
Es sollte beachtet werden, dass die Lösung für Probleme mit der Konfiguration von ssmtp und cron von der spezifischen Konfiguration Ihres Systems abhängen kann. Es wird empfohlen, die Dokumentation und Beispiele für die ausgewählten Tools sorgfältig zu lesen und sich bei Schwierigkeiten an die Community oder an Fachleute zu wenden.