Mail per SSH senden

daschmidt94

Benutzer
Mitglied seit
17. Mai 2020
Beiträge
265
Punkte für Reaktionen
19
Punkte
24
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
Sehr erfahren
Mitglied seit
17. Dez 2006
Beiträge
270
Punkte für Reaktionen
394
Punkte
113
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
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
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
Sehr erfahren
Mitglied seit
17. Dez 2006
Beiträge
270
Punkte für Reaktionen
394
Punkte
113
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
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
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
Sehr erfahren
Mitglied seit
17. Dez 2006
Beiträge
270
Punkte für Reaktionen
394
Punkte
113
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
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
"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
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.541
Punkte für Reaktionen
1.385
Punkte
234
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
Sehr erfahren
Mitglied seit
17. Dez 2006
Beiträge
270
Punkte für Reaktionen
394
Punkte
113
(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
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
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
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.381
Punkte für Reaktionen
1.195
Punkte
234
… 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
265
Punkte für Reaktionen
19
Punkte
24
Das klappt leider nicht
 
Zuletzt bearbeitet von einem Moderator:

Marc

Administrator
Teammitglied
Sehr erfahren
Mitglied seit
17. Dez 2006
Beiträge
270
Punkte für Reaktionen
394
Punkte
113
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
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
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
265
Punkte für Reaktionen
19
Punkte
24


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat