Ist es möglich, einen Remote-SMTP/IMAP-Server (der von einem anderen Unternehmen verwaltet wird, denken Sie an Google Apps oder Office 365) über NGINX per Reverse-Proxy zu nutzen? Beispiel:
Ich hoste example.com
und mailhost.com
hoste meine E-Mails. Ich habe versucht, 2 CNAME-Einträge hinzuzufügen, example.com
um dies zu erreichen, aber es hat nicht funktioniert. [ smtp.example.com
-> smtp.mailhost.com
, usw.]
Am liebsten hätte ich eine Subdomäne ( mail.example.com
), die sowohl auf als auch zeigt smtp.mailhost.com
und imap.mailhost.com
zwischen den beiden durch die Verwendung von Ports unterscheidet. [ mail.example.com:993
-> imap.mailhost.com:993
, smtp.example.com:587
-> smtp.mailhost.com:587
]
Ist das möglich? Der einzige Grund, warum ich es tun möchte, ist, den Benutzern meiner Website das Einrichten von E-Mail-Clients zu erleichtern und Verwirrung zu vermeiden, wenn sie fragen, warum ich sie auffordere, sich mit einer scheinbar zufälligen Domäne zu verbinden, um E-Mails zu erhalten. Mir ist klar, dass dies zu Problemen mit DKIM usw. führen kann.
Ist diese Aufgabe einfach, macht sie mehr Aufwand als sie wert ist oder ist sie unmöglich? Ich kann einen Mailserver einrichten, würde aber lieber eine fertige Lösung verwenden.
Antwort1
Meiner Meinung nach fehlt in der Anleitung zum NGINX-Mailproxyserver eine sehr wichtige Information, die ich benötigt hätte, um etwas Ähnliches zum Laufen zu bringen:
Verwenden eines PHP-Skripts auf einem Apache-Server als IMAP-Authentifizierungs-Backend
Ich habe einige Wochen damit verbracht, eine funktionierende Lösung zu finden, da das Mocking des Authentifizierungsdienstes bei mir nicht richtig funktionierte. Nachdem ich alle SSL-Funktionen deaktiviert und das Authentifizierungs-PHP-Skript hinzugefügt hatte, konnte ich endlich E-Mails mit IMAP über den NGINX-Proxy empfangen.
Ein Problem, das bei SMTP immer noch besteht, ist: NGINX leitet den Authentifizierungsbefehl nicht an den Server weiter:https://forum.nginx.org/read.php?2,58181,58186#msg-58186.
Daher ist es notwendig, die Authentifizierung für SMTP zu deaktivieren, um den NGINX-Mailproxy nutzen zu können. Wenn jemand eine Problemumgehung findet, posten Sie die Lösung bitte hier:https://stackoverflow.com/questions/56031592/nginx-forwarding-smtp-auth-credentials-to-next-server/56583571#56583571
Hier sind einige Links zu dem Thema, die ich teilen möchte:
Antwort2
Dies ist ziemlich gut abgedeckt in derKonfigurieren von NGINX als Mail-Proxy-ServerAnleitung in den offiziellen Dokumenten.
Beachten Sie jedoch, dass möglicherweise Probleme bei der E-Mail-Zustellung auftreten können, wenn Sie nicht in der Lage sind, eine SPF-, SSL- und DKIM-Konfiguration an die Upstream-Konfiguration anzupassen.