Ich verwende das "Standard Formular" in Typo3, also keine Erweiterung. Eine Erweiterung für ein Mailformular möchte ich nicht verwenden, da das "Standard Formular" für meine Zwecke vollkommen ausreicht.
Bei manchen Providern (in meinem Fall Goneo) muss Sendmail mit der Option -f aufgerufen werden, damit Mails aus PHP heraus verschickt werden. Goneo beschriebt dies ganz schön: http://wiki.goneo.de/doku.php?id=mailversand_php
1. Ich habe eine php.ini angelegt mit der Zeile
Jedes PHP-Skript, das im gleichen Verzeichnis liegt, verwendet nun diese php.ini anstatt der globalen php.ini.
2. Ich habe das beschriebene Testscript im gleichen Verzeichnis wie meine php.ini ausgeführt --> Funktioniert.
3. Ich habe die php.ini nach typo3/install kopiert --> Nun funktioniert auch der Testversand im Install-Script.
Wohin muss ich nun die php.ini kopieren, dass Typo3, vor allem das "Standard Formular", meine php.ini verwendet und endlich Mails versendet? Bisherige Versuche haben keinen Erfolg gebracht.
den -f parameter kann man im InstallTool erzwingen
Gehe dazu im InstallTool auf "All Configuration" und suche nach "forceReturnPath".
Die Option "forceReturnPath" habe ich bereits aktiviert, leider ohne Erfolg für das Formular.
Der Mailversand mit dem Install-Tool hat mit dieser Option funktioniert - nachdem ich in der class.tx_install.php die sinnlose null@www.meinedomain.de durch eine existierende Email-Adresse ausgetauscht hatte.
Daher bin ich an der Lösung mit der php.ini interessiert.
Das Aktivieren der Option "forceReturnPath" hatte keine Wirkung, weil in Klasse t3lib_formmail nie das Attribut returnPath der Elternklasse t3lib_htmlmail gesetzt wird. Daher wird in t3lib_htmlmail.sendTheMail(..) der returnPath nie angehängt.
Nach einer Erweiterung in class.t3lib_htmlmail.php (Typo3 4.2.12) nach Zeile 133 hat der Versand funktioniert.
$this->returnPath = ($V['return_path']) ? $V['return_path'] : $this->from_email;
$this->returnPath = t3lib_div::validEmail($this->returnPath) ? $this->returnPath : '';
Das Ändern von Code im typo3_src für den Produktiveinsatz ist jedoch nicht akzeptabel, daher bin ich weiterhin an der Lösung mit php.ini interessiert.
Nachtrag: Die Analyse hätte ich mir sparen können! #angry#
Es gibt bereits seit Juli 2009 eine offene Meldung im Bugtracker zum nicht gesetzten returnPath in t3lib_htmlmail:
http://bugs.typo3.org/view.php?id=11472
Hi Martin,
wo genau muss man die 2 Zeilen ergänzen? Zeile 133 sagt nicht viel aus, da meine Zeile 133 eine ganz andere ist. Könntest du vielleicht schreiben, was davor und danach stehen muss, damit man weiß wo genau man die 2 Zeilen eintragen muss?
Oder meinst du zeile 733? Weil bei mir fängt die function sendTheMail() erst in Zeile 718 an.
Mfg Oliver
Hallo Oliver,
die Zeile war richtig, ich hatte leider die falsche Datei angegeben. Die zwei Zeilen hatte ich in der class.t3lib_formmail.php eingefügt.
133 $this->priority = ($V['priority']) ? t3lib_div::intInRange($V['priority'],1,5) : 3;
134 (neu) $this->returnPath = ($V['return_path']) ? $V['return_path'] : $this->from_email;
135 (neu) $this->returnPath = t3lib_div::validEmail($this->returnPath) ? $this->returnPath : '';
136
137 // Auto responder.
Danke für den Hinweis.
mfg,
Martin