Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 26. Februar 2021 11:41

rednose
probiert CMS/ms aus
Registriert: 28. März 2011
Beiträge: 62

Formbuilder Return-Path

Guten Morgen

Der Hintergrund diese Frage ist sehr technisch, aber der Lösung kann ich hoffentlich im Modul lösen.
Im Einsatz CMS 2.2.15, Formbuilder 1.1

Wegen Einsatz Exchange Server werden die Formulare Emfpang grundsätzlich blockiert, auf andere externe private Email adressen geht es.
SPF record ist alles richtig eingestellt.

Jetzt ist der Standard einstellung (sieht man im header vom formular email unter envelope-from und Return-Path) ein standard user vom Provider, welche nicht übereinstimmt mit der From welche ich im Formular angegeben habe ( welche wäre noreply@domain)
Auf Nachfrage beim Provider muss ich dass ändern können indem ich

[== php ==]
$headers = "Return-Path: ihre@mailadresse.com\r\n"; 

irgendwo mitgebe.
Jetzt habe ich überall gesucht wo headers definiert sind finde aber nur der eintrag {$fb_form_header} im vorlage aber wo diese definiert ist???
Auch habe ich versucht diese Satz einfach mal  einzubauen in der Vorlage

{$fb_form_header}
{$headers = "Return-Path: ihre@mailadresse.com\r\n";}
{if $fb_form_done == 1}

aber das hat nichts geändert im Header.

Meine Frage: weiss jemand wo ich diese Satz einbauen kann um den Hintergrundinformation vom formbuilder anzupassen? Oder eine andere Weg der Return-Path anzupassen?

Ich weiss dass es immer noch die möglichkeit hat der IT anzufragen der return-path email auf der whitelist zu nehmen, aber ich habe immer mehr Kunden mit solche Konstellationen und würde gerne wissen ob ich da selber auch etwas machen kann.

Mit freundlichen Grüssen
Rednose

Beitrag geändert von rednose (26. Februar 2021 11:42)

Offline

#2 03. April 2021 15:20

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.379

Re: Formbuilder Return-Path

Sorry für die späte Antwort.

Wegen Einsatz Exchange Server werden die Formulare Emfpang grundsätzlich blockiert, auf andere externe private Email adressen geht es.

Ich verstehe hier leider nur Bahnhof.
Wer blockiert welche Formulare?
Und was hat der (blockierte) Formularempfang mit dem Senden von E-Mails zu tun?

Wenn ich "blockierte Formulare" im Zusammenhang mit FormBuilder lese, denke ich, dass die FormBuilder Formulare, die im FrontEnd ausgefüllt und abgesendet werden, nicht bei Deinem Server ankommen. D.h. die POST-Daten werden blockiert. Das wäre aber ein grundsätzliches Problem. Kann bei Dir also nicht der Fall sein, weil ja sonst alles funktioniert wie es soll (oder?).

Wenn es darum geht, dass die im FrontEnd ausgefüllten FormBuilder-Formulare nach dem erfolgreichen Absenden an Deinen Server nicht per E-Mail von Deinem Server an eine vorgegebene Adresse (z.B. aus dem Formular oder sonstwoher) versendet werden können, dann ist erstmal die Frage, welche Mail-Methode verwendet wird. Funktioniert denn die Testmail? Wenn nein, dann liegt es an Deinen Einstellungen bzw. schlichtweg am Server.

Auf Nachfrage beim Provider muss ich dass ändern können

Im Template kannst Du da garnichts machen.
Dein Provider sagt Dir damit nur pauschal, dass man dazu irgendwo etwas am PHP-Code ändern müsste. Er hat aber keine Ahnung wo, weil er nicht weiß/wissen kann, was genau da zum Einsatz kommt. Er geht einfach davon aus, weil der Header fehlt, müsstest Du ihn einfügen. Das stimmt aber nur zum Teil, denn der FormBuilder selber nutzt dazu auch nur den PHPMailer der bei CMSms mitgeliefert wird. Und im PHPMailer steht zum Thema Return-Path:

/**
     * The Return-Path of the message.
     * If empty, it will be set to either From or Sender.
     * @var string
       * @deprecated Email senders should never set a return-path header;
       * it's the receiver's job (RFC5321 section 4.4), so this no longer does anything.
       * @link https://tools.ietf.org/html/rfc5321#section-4.4 RFC5321 reference

       */

Mein laienhaftes Verständnis von dem ganzen E-Mail-Gedöns ist folgendes: Der Return-Path sollte am Ende von demjeningen gesetzt werden, der die Mail tatsächlich ausliefert. Der sogenannte MDA (Mail Delivery Agent).

CMSms liefert keine Mail aus. Auch nicht der FormBuilder. Und PHPMailer eigentlich auch nicht. Die bereiten nur alles vor und übergeben das dann an das Mailprogramm des Servers (z.B. Sendmail). Und jetzt kommt erstmal wieder die Frage nach der verwendeten Mail-Methode. Wenn es "mail" ist, solltest Du das in einer php.ini völlig unabhängig vom CMS einstellen können. Wenn es "Sendmail" ist, dann muss man, glaube ich, Änderungen am cms_mailer vornehmen. Also am Core von CMSms, weil der cms_mailer nämlich nur den Header für "From" setzt, nicht den für "Sender". Letzteres wird aber, soweit ich gelesen habe, vom MDA als "Return-Path" verwendet. Überhaupt setzt der cms_mailer die Eigenschaften von PHPMailer direkt, anstatt sich an die API zu halten. Dann würde beim Setzen von "From" auch "Sender" gesetzt werden.

Ich kann Dein Szenario leider nicht nachstellen, deshalb wirst Du da viel mit Trial and Error ausprobieren müssen.
Lass uns erstmal die Frage klären, ob denn der E-Mail Versand überhaupt funktioniert.
Dann kann man sich ja Stück für Stück an FormBuilder & Co rantasten.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12.2 unter PHP 7:
cmsms-1.12.2-php7.2-diff.tar.gz (nur die geänderten Dateien)
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)

Offline