Meine Lösung für den E-Mail-Versand über SMTP aus VTiger 5.4.0

24. Juli 2013

Ich richte gerade ein CRM-System auf Basis von VTiger 5.4.0 ein und versuche, den Versand von E-Mails über SMTP zum Laufen zu bekommen.

Im Menüpunkt Einstellungen > Mailserver1 von VTiger kann man dafür die Absender-Adresse, den Namen des SMTP-Servers, einen Nutzernamen und ein Passwort für die Authentifizierung vorgeben. Sofort beim Speichern der Einstellungen sollte VTiger zur Bestätigung eine Testmail an das Postfach des gerade angemeldeten Benutzers senden.

Stattdessen erhalte ich diese Fehlermeldung:

teste Mail Status: Es wurde erfolglos versucht, eine E-Mail zu der Adresse Ihres CRM Administrators zu senden. Bitte prüfen Sie die zugewiesene E-Mail Adresse und Ihre Servereinstellungen.2

Die Benutzerdaten sind korrekt, der Mailserver läuft, der Webserver kann E-Mails aus anderen Webanwendungen senden – nur VTiger zickt herum.

Ursache

Der Grund dafür ist nicht einfach zu finden:

VTiger verwendet beim Versand von E-Mails eine fest vorgegebene Adresse im Sender:-Feld der Nachricht, um sensible Spamfilter zu besänftigen. Diese Adresse besteht aus dem festen local part noreply und dem Domainnamen des SMTP-Servers, zum Beispiel noreply@example.com).

In der Funktion getReturnPath() wird dazu der Name des SMTP-Servers an den trennenden Punkten in seine Einzelstandteile zerlegt, der erste Teil entfernt und wieder zusammengefügt. Aus mail.example.com wird also zuerst example.com und danach die Sendeadresse noreply@example.com.

Das geht geht für alle Mailserver gut, die einen Hostname als ersten Bestandteil im Namen tragen, und funktioniert nicht bei Servern, die über IP-Adressen wir 127.0.0.1 oder nur über die Domain adressiert werden (example.com). In solchen Fällen bildet vTiger ungültige Sender-Adressen noreply@0.0.1 bzw. noreply@com, die der SMTP-Server nicht akzeptiert und mit einer Fehlermeldung ähnlich der folgenden quittiert:

450 4.1.8 : Sender address rejected: Domain not found

Auf verschlungenen Wegen findet diese Fehlermeldung in der Klasse PHPMailer ihren Niederschlag in der Diagnose, dass die *Empfänger*-Adresse ungültig wäre.

Lösung

In den Foren von VTiger wird vorgeschlagen, eine Zeile in der Datei /modules/Emails/mail.php zu ändern.

Ich hab’s mir einfacher gemacht, den Patch in VTiger vermieden und stattdessen den Alias-Namen des SMTP-Servers mail.example.com in die VTiger-Konfiguration bei Einstellungen > Mailserver eingetragen.

1 Settings > Outgoing Server

2 Test Mail Status : Mail could not be sent to the admin user. Please check the admin emailid/Server settings

Kommentare

  1. Die Lösung ist völlig unverständlich und kurz.
    Wo hast du wie was eingetragen. Bei mir ist beispielsweise der Mailserver ein komplett anderer ans der Domainname der Mailadresse

  2. Jürgen Höfer

    15. Oktober 2013, 14:48

    Kann mich Simon nur anschliessen, unverständliche Beschreibung, was gehört wo hin? Habs zwar mittlerweile mit gmail als outgoing server hingebracht, würde aber gerne den smtp meiner domain verwenden, und da klappt es gar nicht…