Mail von Kommandozeile versenden

Wie kann ich eine E-Mail von der Kommandozeile versenden?

Zu erst installieren wir die Mail-Util’s.

sudo apt-get install mailutils

Und jetzt kann man schon eine E-Mail versenden.

mail -s "Betreff" recipient@domain.de < nachricht.txt

echo "Nachricht" | mail -a "From: you@example.com" -s "Betreff" recipient@domain.de

Oder mit Sendmail.

sendmail recipient@domain.de
From: you@example.com
Subject: Betreff
Nachricht
.

Sollte die Email beim Empfänger nicht an kommen, muss man die Einstellung von Postfix oder Exim noch einmal prüfen.

sudo dpkg-reconfigure postfix

sudo dpkg-reconfigure exim4-config

Will man die Kommunikation von SMTP selbst mal probieren, so kann man per Telnet auch eine E-Mail senden.

telnet mail.domain.de 25

HELO <senderhostname.de>
EHLO <senderhostname.de>
MAIL FROM:<you@example.com>
RCPT TO:<recipient@domain.de>
DATA
Subject: Test email
 
Body of the email
.
QUIT

Heute sollte die Kommunikation zum SMTP Server nicht mehr unverschlüsselt statt finden. Für die Verschlüsslung werden SSL Zertifikat verwendet.

Mit OpenSSL kann man das Zertifikat von dem SMTP Server überprüfen.

openssl s_client -connect : -servername [-starttls ]

Die Umschaltung auf verschlüsselt Übertragung erfolgt per STARTTLS. Mögliche Werte sind (smtp, pop3, imap).

Hier ein Beispiel für SMTP.

openssl s_client -connect example.com:25 -servername example.com -starttls smtp

Wenn man nur das Zertifikat überprüfen will, geht es auch so.

openssl s_client -connect example.com:25 -starttls smtp -showcerts | openssl x509 -text

Hier eine Liste der Ports für E-Mail Kommunikation.

  • 25 SMTP Empfangen von E-Mails von anderen Mailservern
  • 465 SMTP SSL Client E-Mail Übertragung
  • 587 SMTP TLS Client E-Mail Übertragung
  • 143 IMAP StartTLS Client
  • 993 IMAP TLS/SSL Client
  • 110 POP3 Client
  • 995 POP3 TLS/SSL Client

Ubuntu Dienst Systemd

Ubuntu hat einen Wechseln von Upstart zu SystemD durchgeführt. Für Systemd gibt es einige neue Tools für die Verwaltung der Dienste.

Um eine Übersicht über alle Dienste zu erhalten können Sie diese Option verwenden.

sudo systemctl -all

Um einen Dienst zu start oder stoppen können Sie diese Befehle verwenden.

sudo systemctl start [name.service]
sudo systemctl stop [name.service]
sudo systemctl restart [name.service]
sudo systemctl reload [name.service]
sudo systemctl status [name.service]

Eine neue Funktion von Systemd ist der Timer, mit deren Hilfe kann man Aufgaben automatisieren.

sudo vim /etc/systemd/system/backup.service

[Unit]
Description=Backup
[Service]
ExecStart=/home/user/backup.sh

Der Timer startet den Dienst immer jeden Tag um 2:15 Uhr.

sudo vim /etc/systemd/system/backup.timer

[Unit]
Description=beispiel timer
[Timer]
OnCalendar=02:15
OnUnitInactiveSec=1d

Hiermit starten Sie den Timer.

sudo service systemctl start backup.timer
sudo systemctl list-timers --all
sudo systemctl enable backup.timer
sudo systemctl disable backup.timer
sudo systemctl --failed

Alle Informationen zu Diensten erhalten Sie im Journal.

journalctl --reverse
journalctl --follow
journalctl --unit backup.timer

Mit den Analyze-Tool kann man sich den Startvorgang in einer SVG-Grafikdatei ausgeben lassen.

systemd-analyze plot > /tmp/plot.svg