Per Default versendet NextCloudPi mit dem in der Konfiguration von NextCloud angegebenen Absender via Sendmail/Postfix direkt per SMTP. Je nach Umgebung oder Provider funktioniert das oder eben auch nicht. In jedem Fall ist es besser, die Konfiguration auf die eigenen Bedürfnisse anzupassen.

Grundsätzlich gibt es mehrere Wege E-Mail in NextCloudPi zu konfigurieren. Der einfachste Anfang besteht in der Konfiguration der Absender-Adresse und ggf. der Methode in den Nextcloud-Einstellungen des Administrators. Unter

Einstellungen - Grundeinstellungen

befindet sich der Abschnitt “E-Mail-Server”. Dort kann man den Sendemodus (Sendmail/SMTP), den Sendmail-Modus und die Absender-Adresse konfigurieren. Stellt man den Sendemodus auf “SMTP” kann anschließend direkt die Anbindung an den eigenen Mailserver oder den eines Providers erfolgen. Von hier aus kann zudem eine Testmail versendet werden.

Alternativ kann man direkt in der Konfigurationsdatei unter

/nextcloud/config/config.php

die entsprechenden Zeilen anpassen.

Als weitere Möglichkeit bietet es sich an, Postfix für die eigene Umgebung anzupassen:

dpkg-reconfigure postfix

Bemerkung: Nicht irritieren lassen darf man sich davon, das in den Nextcloud-Einstellungen nur von Sendmail die Rede ist, bei NextCloudPi ist Postfix installiert und greift an dieser Stelle.

Postfix – Richtigen Absender einstellen

Damit Mails nicht einfach als root oder root@hostname.domain.tld versendet werden, was nicht überall funktioniert, kann man eine neue Datei “/etc/postfix/sender_canonical” mit folgendem Inhalt erstellen:

root name@domain.tld

In der Datei “/etc/postfix/main.cf” folgendes einfügen:

sender_canonical_maps = hash:/etc/postfix/sender_canonical

Die Änderung in Postfix übernehmen:

postmap /etc/postfix/sender_canonical
service postfix restart

Postfix – Mails an root umleiten

Damit Mails die an root gesendet werden letztlich im richtigen (externen) Postfach landen, folgendes ändern:

Eine neue Datei “/etc/postfix/virtual” mit diesem Inhalt erstellen:

root name@domain.tld

In “/etc/postfix/main.cf” diese Zeile eintragen:

virtual_alias_maps = hash:/etc/postfix/virtual

Die Änderung in Postfix übernehmen:

postmap /etc/postfix/virtual
service postfix restart

Mails von Cronjobs steuern

Nervig können die Mails von Cronjobs sein. So prüft NCP beispielsweise stündlich, ob Updates anliegen. Selbst wenn nichts neues anliegt erhält man eine Mail das eben keine Aktualisierungen zur Verfügung stehen. Diese Nachricht lässt sich unterbinden durch diese Änderung:

Die Datei

/etc/cron.d/ncp-notify-updates

editieren und “> /dev/null” oder ggf. “> /dev/null 2>&1”
an den Befehl anhängen. Letztlich muss die Zeile so aussehen:

40 */1 * * * root /usr/local/bin/ncp-notify-update > /dev/null && /usr/local/bin/ncp-notify-unattended-upgrade > /dev/null

Leider darf man diese Änderung des Öfteren nach einem Update von NCP wiederholen.

Wen die täglichen Mails von debsecan stören, der kann das Skript unter

/etc/cron.d/debscan

entsprechend bearbeiten. Besser ist es allerdings mittels

dpkg-reconfigure debsecan

die tägliche Benachrichtigung zu konfigurieren.

Troubleshooting

Im Fehlerfall ist es hilfreich das Protokoll unter

/var/log/mail.log

zu prüfen.

Quellen:

GitHub – NextCloudPi – Wiki – Email settings

Ubuntuusers – Wiki – Postfix

askubuntu.com – Stop Postfix sending email to root@domain.local

SysAdminsLife – QuickTipp: Cron Daemon Mails deaktivieren – Cronjob ohne Ausgabe Email

Update 27.09.2019

Wird das automatische Generieren der Vorschau-Bilder (nc-previews-auto) genutzt, kommt gerne Mal über Nacht eine Mail mit dem Betreff “Cron <root@hostname> /usr/local/bin/nc-previews” und dem Inhalt “Cannot load Zend OPcache – it was already loaded”.

Diese Mail lässt mit einer kleinen Ergänzung im betreffenden Cronjob unterbinden:

  • Die Datei “/etc/cron.d/ncp-previews-auto” editieren.
  • Den Eintrag um “> /dev/null” erweitern, so das dieser wie folgt aussieht:
    0 2 * * * root /usr/local/bin/nc-previews > /dev/null

Update 15.07.2020

Evtl. sind folgende (zusätzliche) Einträge in

/etc/postfix/sender_canonical

hilfreich:

root name@domain.tld
www-data name@domain.tld
<Benutzername> name@domain.tld
daemon name@domain.tld

Update 23.07.2020

“> /dev/null 2>&1” ergänzt.