Mail per SSH senden

daschmidt94

Benutzer
Mitglied seit
17. Mai 2020
Beiträge
90
Punkte für Reaktionen
2
Punkte
14
Guten Abend,

ich versuche gerade ein Skript für rsync anzulgen. Leider schaffe ich es nicht
per Shell eine Mail über die DS zu versenden.
Unter Debian klappt das mit der Installation von Postfix ziemlich einfach.
Wie löst ihr das?


MFG Schmidt
 

Marc

Administrator
Teammitglied
Mitglied seit
17. Dezember 2006
Beiträge
86
Punkte für Reaktionen
91
Punkte
68
Das geht mittlerweile ganz einfach:

Du installierst den Synology Mail Server, konfigurierst ein Relay und verschickst die Mails dann mittels /usr/sbin/sendmail
 
  • Like
Reaktionen: daschmidt94

blurrrr

Benutzer
Mitglied seit
23. Januar 2012
Beiträge
3.253
Punkte für Reaktionen
197
Punkte
123
Die Syno kann doch auch ohne installierten Mailserver Mails verschicken (vermutlich via PHP-Script), da wäre dann wohl eher was in Richtung PHPMailer angesagt, oder irre ich da?
 

Marc

Administrator
Teammitglied
Mitglied seit
17. Dezember 2006
Beiträge
86
Punkte für Reaktionen
91
Punkte
68
Die Frage war wie man Mails über die Shell verschickt und das geht so am einfachsten. Ich würde es auch nicht ohne Relay aufsetzen. Klar kannst du das auch über php machen, wenn du es etwas komplizierter magst.
 

blurrrr

Benutzer
Mitglied seit
23. Januar 2012
Beiträge
3.253
Punkte für Reaktionen
197
Punkte
123
Jeder wie er mag, keine Frage. :)

Ich vertrete nur die Meinung, dass es keinen vollwertigen Mailserver braucht, nur weil man mal eine Mail verschicken möchte. Spart u.a. Systemressourcen (man weiss ja auch nicht, was für ein System es sich handelt). PHP ist sowieso installiert, via PHPMailer liessen sich so einfach über die Shell Mails verschicken (und es läuft nicht noch irgendwas extra im Hintergrund, was zusätzlich Ressourcen nutzt, denn die werden ja sowieso schon genutzt).

EDIT: Nur der Vollständigkeit halber - normalerweise sind SSMTP als auch cURL sind installiert (von PHP jetzt mal ganz ab), damit kann man im Zweifel auch Mails verschicken.
 
Zuletzt bearbeitet:

Marc

Administrator
Teammitglied
Mitglied seit
17. Dezember 2006
Beiträge
86
Punkte für Reaktionen
91
Punkte
68
Du skriptest also rsync in der Shell und schickst im selben Skript dann Mails per php?

Du brauchst so zwei Sprachen für diesen einfachen Task, mußt dich um die Parameterübergabe kümmern, musst den Mailer konfigurieren, den Rückgabewert wieder übergeben und hast viele Zeilen Code während du das genauso gut in einem Einzeiler mit einem Shell Kommando haben kannst.

Der Mailserverprozess ist idle, der verbraucht keine nennenswerten Ressourcen.
 

blurrrr

Benutzer
Mitglied seit
23. Januar 2012
Beiträge
3.253
Punkte für Reaktionen
197
Punkte
123
"Nennenswerte Ressourcen" definieren sich glaube ich eher durch das eingesetzte System (DS107e?🤪) und dessen aktuelle Auslastung. Man könnte auch mutmaßen: Mehr installierte Software - mehr mögliche Sicherheitslücken, aber die Debatte hier ist doch recht müßig und läuft doch nun etwas offtopic. Ich sagte ja auch bereits "Jeder wie er mag", Du hast Deine Meinung, ich habe meine, andere eine andere - da bleibt es nun dem TO überlassen - Möglichkeiten (nebst PHP) haben sich hier ja doch einige gefunden (das wären auch Einzeiler beim Mailversand). :)
 

peterhoffmann

Benutzer
Mitglied seit
17. Dezember 2014
Beiträge
3.061
Punkte für Reaktionen
103
Punkte
129
Code:
SUBJECT="Mein toller Betreff"
CONTENTS="Mein toller Inhalt"

ssmtp meine@email.de << EOF
To: empfaenger@email.de
From: meine@email.de
Subject: $SUBJECT

$CONTENTS
EOF
Zwingende Voraussetzung:
Im DSM muss eine E-Mailadresse [meine(at)email.de] für die Benachrichtigung eingerichtet sein.

Auf diesem Weg spart man sich die Installation vom Mailserver. Ich nutze diese Möglichkeit um mir in ablaufenden Scripten bei Bedarf eine E-Mail zuzusenden. Z.B. prüft ein Script regelmäßig die Smartwerte der HDDs, bei Änderungen von kritischen Werten schickt das Script eine E-Mail.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: ottosykora und Marc

Marc

Administrator
Teammitglied
Mitglied seit
17. Dezember 2006
Beiträge
86
Punkte für Reaktionen
91
Punkte
68
(y) Auch sehr gute Lösung. Das nutzt dann das Relay, das in den Benachrichtigungen konfiguriert ist.

Mit sendmail sieht es so aus:

Code:
echo -e "Subject"  <Message> | /usr/sbin/sendmail -F $FromHost -f $FromEmail -t $AdminEmail
 
  • Like
Reaktionen: peterhoffmann

blurrrr

Benutzer
Mitglied seit
23. Januar 2012
Beiträge
3.253
Punkte für Reaktionen
197
Punkte
123
Dann vervollständige ich mal die Liste... via cURL sieht das dann so aus:

Code:
curl --url 'smtps://mail.example.com:465' --ssl-reqd --mail-from 'user1@example.com' --mail-rcpt 'user2@example.com' --upload-file mail.txt --user 'user1@example.com:user1passwort'

Mittels PHPMailer wäre dann z.B. hier zu finden: Sending Email from a Local Web Server Using PHPMailer
 

geimist

Benutzer
Mitglied seit
04. Januar 2012
Beiträge
3.020
Punkte für Reaktionen
62
Punkte
114
… und noch die php-Lösung, die ich lange Zeit genutzt habe. Meines Wissens nach, müsste auch hier die Benachrichtigungseinstellung des DSM verwendet werden.
Bash:
/usr/bin/php -r "mail('$EMPFAENGER', '$BETREFF', '$BODY', '$ABSENDER');"
 

daschmidt94

Benutzer
Mitglied seit
17. Mai 2020
Beiträge
90
Punkte für Reaktionen
2
Punkte
14
Das klappt leider nicht
 
Zuletzt bearbeitet von einem Moderator:

Marc

Administrator
Teammitglied
Mitglied seit
17. Dezember 2006
Beiträge
86
Punkte für Reaktionen
91
Punkte
68
Ja stimmt, der php Aufruf nutzt das Relay der Benachrichtigungseinstellungen. Nachteil ist, dass man nicht direkt auf die Shell-Umgebung zugreifen kann und man sich um die Parameterübergabe kümmern muss.

Die curl Lösung ist unschön. Mailbody aus einer Datei und Authentifizierungsdaten plain im Aufruf. Macht man so eigentlich nur wenn man schnell was testen will oder es keine andere Möglichkeit gibt.

Einen MTA im Netz zu haben ist oft aber auch sehr praktisch, wenn man aus Umgebungen versenden muss, wo man ein Relay nicht gut oder nicht verschlüsselt anbinden kann oder wenn man Authentifizierungsdaten nicht an x Stellen pflegen möchte. Das kann man mit dem Synology Mail Server wunderbar einfach lösen.
 

blurrrr

Benutzer
Mitglied seit
23. Januar 2012
Beiträge
3.253
Punkte für Reaktionen
197
Punkte
123
Funktioniert denn die DNS-Auflösung über die Shell?

EDIT: Hab es grade mal bei mir getestet, die Fehlermeldung bekomme ich nicht (habe auch nur Benachrichtungen konfiguriert).
 
Zuletzt bearbeitet:

daschmidt94

Benutzer
Mitglied seit
17. Mai 2020
Beiträge
90
Punkte für Reaktionen
2
Punkte
14
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten, denn dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit einem hohen technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive oder Themen fremde Werbung. Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.