TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

Speicherort der php.ini für Mailversand?


Autor Nachricht
Verfasst am: 04. 03. 2010 [23:06]
Martin301
Themenersteller
Dabei seit: 11.07.2006
Beiträge: 12
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

sendmail_path = /usr/local/sbin/sendmail -t -i -f existing@mydomain.de


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.

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 04.03.2010 um 23:07.]
Profil
Verfasst am: 05. 03. 2010 [09:58]
karlchen
Dabei seit: 19.10.2006
Beiträge: 868
den -f parameter kann man im InstallTool erzwingen
Gehe dazu im InstallTool auf "All Configuration" und suche nach "forceReturnPath".

Profil
Verfasst am: 05. 03. 2010 [23:38]
Martin301
Themenersteller
Dabei seit: 11.07.2006
Beiträge: 12
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[at]www.meinedomain[dot]de durch eine existierende Email-Adresse ausgetauscht hatte.

Daher bin ich an der Lösung mit der php.ini interessiert.
Profil
Verfasst am: 06. 03. 2010 [17:39]
Martin301
Themenersteller
Dabei seit: 11.07.2006
Beiträge: 12
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.
PHP
$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.
Profil
Verfasst am: 06. 03. 2010 [17:51]
Martin301
Themenersteller
Dabei seit: 11.07.2006
Beiträge: 12
Nachtrag: Die Analyse hätte ich mir sparen können! banghead.gif

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
Profil
Verfasst am: 04. 05. 2010 [16:33]
Skyhead
Dabei seit: 11.02.2008
Beiträge: 32
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
Profil
Verfasst am: 16. 05. 2010 [22:43]
Martin301
Themenersteller
Dabei seit: 11.07.2006
Beiträge: 12
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.
PHP
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

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 16.05.2010 um 22:52.]
Profil