Wenn Sie einen Mail-Empfangs-Container verwenden, der eine angepasste Postfix-Konfiguration erfordert, ist dieses Thema genau das Richtige für Sie. Hier werden die Schritte beschrieben, die erforderlich sind, um die Postfix-Konfigurationsvariablen in main.cf nach Ihren Wünschen einzustellen.
Postfix-Konfigurationsvariablen können über die Container-Umgebungsvariablen festgelegt werden. Jede Umgebungsvariable, die mit POSTCONF_ beginnt, setzt eine Postfix-Konfigurationsvariable, deren Name dem Rest des Variablennamens entspricht, auf den Wert der Umgebungsvariable. Wenn Sie beispielsweise die Umgebungsvariable POSTCONF_always_bcc auf bob@example.com setzen, wird Postfix so konfiguriert, dass always_bcc = bob@example.com gilt. Dadurch wird eine Kopie aller eingehenden Mails an Bob gesendet. Armer Bob.
Vorgehensweise
-
Ermitteln Sie, welche Konfigurationsvariablen Sie setzen möchten und welche Werte Sie ihnen zuweisen wollen. Dies kann durch Lesen des ausführlichen Handbuchs, durch Empfehlungen in anderer Discourse-Dokumentation oder auf andere Weise geschehen.
-
Stellen Sie eine SSH-Verbindung zu Ihrem Discourse-Server her, erhalten Sie
root-Rechte und wechseln Sie in das Verzeichnis, in dem die gesamtediscourse-docker-Konfiguration gespeichert ist:ssh ubuntu@192.0.2.42 sudo -i cd /var/discourse -
Öffnen Sie
containers/mail-receiver.ymlin Ihrem bevorzugten Texteditor und scrollen Sie zum Abschnittenv:der Datei. Fügen Sie an geeigneter Stelle Einträge für die Variablen hinzu, die Sie hinzufügen möchten. Achten Sie darauf, nichts anderes zu verändern und die korrekte Einrückung beizubehalten. Wenn wir beispielsweise unserealways_bcc-Einstellung hinzufügen würden, könnte die Datei etwa so aussehen:env: LANG: en_US.UTF-8 MAIL_DOMAIN: discourse.example.com DISCOURSE_BASE_URL: 'https://discourse.example.com' DISCOURSE_API_KEY: abcdefghijklmnop DISCOURSE_API_USERNAME: system POSTCONF_always_bcc: 'bob@example.com'Sobald Sie mit Ihren Änderungen zufrieden sind, speichern Sie die Datei und schließen Sie den Editor.
-
Um die Konfiguration zu übernehmen, müssen Sie lediglich den
mail-receiver-Container neu starten (einrebuildist nicht erforderlich):./launcher restart mail-receiverNach einer kurzen Verzögerung sollte der Container wieder laufen.
-
Testen Sie Ihre Änderungen. Stellen Sie sicher, dass sowohl das, was Sie erreichen wollten, tatsächlich eingetreten ist, als auch dass nichts Unerwartetes geändert wurde.
Anhang: Hinzufügen von Dateien zum mail-receiver-Container
Viele Postfix-Konfigurationsparameter benötigen Zugriff auf „Datenbankdateien", die Schlüssel-Wert-Informationen bereitstellen, die Postfix verwendet, um Entscheidungen darüber zu treffen, wie mit Mails umgegangen wird. Wenn Sie sehen, dass ein Konfigurationsparameter einen Dateinamen akzeptiert, der wie hash:/some/file aussieht, haben Sie einen Anwendungsfall für Datenbankdateien gefunden.
Das Problem ist, dass Postfix innerhalb des Containers Zugriff auf diese Dateien haben muss, während es läuft. Das bedeutet, Sie müssen entweder diese Dateien in den Container kopieren oder (bevorzugt) diese Dateien in ein Verzeichnis auf dem Host-System legen und dieses Verzeichnis dann als Volume im Container einbinden. Diese Anweisungen beschreiben die zweite Methode.
Sobald Sie dieses Verfahren abgeschlossen haben, wird jede Datei, die Sie in /var/discourse/shared/mail-receiver/etc ablegen, sofort unter /etc/postfix/shared innerhalb des Containers sichtbar sein. Alle Änderungen, die Sie an diesen Dateien vornehmen, sind für Postfix sofort wirksam.
So gehen Sie vor:
-
Wenn Sie nicht mehr als
rootauf Ihrem Discourse-Server angemeldet sind, melden Sie sich erneut an:ssh ubuntu@192.0.2.42 sudo -i cd /var/discourse -
Öffnen Sie
containers/mail-receiver.ymlin Ihrem bevorzugten Texteditor und wechseln Sie diesmal zum Abschnittvolume:. Fügen Sie unter der vorhandenen Definition für das Verzeichnis/var/spool/postfixeine weitere hinzu, sodass Ihrvolume-Abschnitt wie folgt aussieht:volumes: - volume: host: /var/discourse/shared/mail-receiver/postfix-spool guest: /var/spool/postfix - volume: host: /var/discourse/shared/mail-receiver/etc guest: /etc/postfix/sharedSpeichern Sie die Datei und schließen Sie den Editor.
-
Um das neue Volume zu aktivieren, müssen Sie lediglich den
mail-receiver-Container neu starten (einrebuildist nicht erforderlich):./launcher restart mail-receiver
Alles erledigt!
