mail() funktionert ja bekanntlich unter Synology DSM auf einer Diskstation nicht.
Relativ komfortabel kann man jedoch Mails mit dem PEAR-Mail-Paket via SMTP versenden.
Dazu sind folgende Schritte nötig:
- Über den Paketmanager PEAR installieren
- Per telnet oder ssh auf der Diskstation eine Konsole öffnen und
|
sudo pear install --alldeps Mail-1.3.0 |
abschicken
- Eine Mail per Mail verschicken:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
require_once "Mail.php"; $from = '<Eure_E-Mail-Adresse@Eure_Domain.de>'; $to = '<Eure_Ziel-E-Mail-Adresse@Eure_Domain.de>'; $subject = 'Euer Betreff'; $body = 'Euer Mailtext'; $headers = array( 'From' => $from, 'To' => $to, 'Subject' => $subject ); $smtp = Mail::factory('smtp', array( 'host' => 'Euer SMTP-Server', 'port' => 'Euer SMTP-Port', 'auth' => true, 'username' => 'Login Eures Absendepostfachs', 'password' => 'Password Eures Absendepostfachs' )); // Send the mail $mail = $smtp->send($to, $headers, $body); |
Update für DSM6
Der PEAR-Pfad muss an zwei Stellen ergänzt werden:
1. Hauptmenü => WebStation => PHP-Einstellungen => Häkchen bei „PHP open_basedir benutzerspezifisch anpassen“ setzen und bei „open_basedir:“ am Ende :/volume1/@appstore/PEAR/ ergänzen
2. auf „Erweiterte Einstellungen“ klicken => Reiter „Kern“ anklicken => den Wert für „include_path“ auf „.:/volume1/@appstore/PEAR/“ anpassen und „OK“ klicken
Ggfls. muss der Webserver noch per SSH neu gestartet werden:
sudo synoservice --restart pkgctl-WebStation
Update für DSM7
Und eines Tages funktionierten die Includes von PEAR einfach nicht mehr. Kein Update, kein Nüscht. Sehr schräg!
Abhilfe:
Hauptmenü => WebStation => Skript-Spracheinstellungen => PHP => aktuell genutzte PHP-Version => Bearbeiten => Kern => include_path auf „.:/volume1/@appstore/PEAR/:/tmp:/var/services/tmp:/var/services/web:/var/services/homes:/var/packages/PEAR/target:/usr/local/share/pear“ setzen
Webserver neu starten:
sudo systemctl restart pkgctl-WebStation