
Ich habe eine Webplattform betrieben, die täglich eine beträchtliche Menge an E-Mails versenden muss. Am Implementierungstermin beschlossen mein Partner und ich, Postfix auf dem Server einzurichten und die Swift Mailer-Klasse zu verwenden, um die E-Mails über eine SMTP-Verbindung an den lokalen Postfix-Server zu senden.
Dadurch konnten wir mehrere E-Mail-Konten haben, z. B. [email protected]
, [email protected]
und [email protected]
mit diesen korrekt mit DKIM signierte E-Mails versenden.
Meine Frage lautet: Können wir PHP nicht irgendwie so konfigurieren, dass eine lokale SMTP-Verbindung (die Zeit und Serverressourcen beansprucht) vermieden und durch eine direktere Möglichkeit zum Zustellen der an die Postfix-Warteschlange zu sendenden Nachrichten ersetzt wird?
Meines Wissens könnte ich eine PHP- mail()
Funktion oder sogar die Klasse von Swift Mailer verwenden Swift_SendmailTransport
und die Nachrichten direkt in die Postfix-Warteschlange einsenden. Aber wenn ja, wie können wir DKIM sicherstellen? Reicht es aus, den Header „FROM“ in die E-Mail-Konten auf dem lokalen Server zu ändern?
Danke schön.
Antwort1
Meines Wissens nach könnte ich die PHP-Funktion „mail()“ oder sogar die Klasse „Swift_SendmailTransport“ von Swift Mailer verwenden und die Nachrichten direkt an die Postfix-Warteschlange übermitteln.
Das ist richtig
Aber wenn ja, wie können wir DKIM sicherstellen? Reicht es aus, den „FROM“-Header in die E-Mail-Konten auf dem lokalen Server zu ändern?
Sie geben Ihren DKIM-Signierer nicht an, daher gehe ich davon aus, dass Sie OpenDKIM in Ihrem Setup verwenden. OpenDKIM lässt sich in Postfix integrieren durchMilter-Schnittstelle. Um E-Mails vom Mail()-Befehl (ohne SMTP-Ritual) zu signieren, müssen Sie sicherstellen, dass der OpenDKIM-Socket/Port ebenfalls aufgeführt ist non_smptd_milters
.
Antwort2
Erstens: Solange Sie OpenDKIM in non_smptd_milters sowie smptd_milters in Postfix' main.cf angegeben haben, sollte ausgehende E-Mail, die über PHP mail() gesendet wird, weiterhin signiert sein. Die „Received“-Header sind standardmäßig nicht signiert und sonst sollte durch die Bereinigung nicht viel neu geschrieben worden sein. Wenn Sie eine alternative Methode wünschen, können Sie DKIM mit Amavis und content_filter signieren, obwohl das noch mehr SMTP-Sitzungen bedeutet.
Zweitens erscheint es mir unwahrscheinlich, dass die Verwendung von lokalem SMTP anstelle des Ablegens der E-Mail in die Maildrop-Warteschlange einen derartigen Leistungseinbruch darstellt. Es könnte sein, dass Sie eine begrenzte Anzahl von Postfix-SMTP-Daemons haben, die alle den Milter aufrufen, aber auch ohne diesen muss die E-Mail noch durch den OpenDKIM-Milter, bevor sie versendet wird. Ja, Ihre PHP-Skripte werden schneller fertig, aber ich bezweifle, dass die E-Mail dadurch schneller zugestellt wird. Es lohnt sich möglicherweise, diesen Artikel noch einmal zu lesen.http://www.postfix.org/QSHAPE_README.html