Hallo alle zusammen,
folgendes Problem ist hier bei mir:
Meine TYPO3-Installation läuft ausschließlich über https (derzeit noch
zu Testzwecken auf nem Testserver mit eigenem Zertifikat), d.h. Frontend
und Backend sind nur auf diesem Wege zugänglich. Zusätzlich gibts noch
einen .htaccess-Schutz für ne Passwortabfrage davor.
Nun möchte ich mittels direct_mail Newsletter verschicken können, aber
jedesmal wird beim Compilieren der Inhalte (sowohl Text, als auch
HTML-Part) abgebrochen.
Über die H- und T-Lupen lassen sich die jeweiligen Inhalte aber
einwandfrei als HTML oder Text-Version anzeigen.
CURL ist aktiv, die Library ist im PHP auch geladen, desweiteren darf
der Server auf seine eigenen Seiten lokal ebenfalls zugreifen.
In der Root-Seite ist auch brav die Domain (ohne http/https)
konfiguriert und bei direct_mail eingestellt.
ich hab mich heute mal hingesetzt und das nochmal Schritt für Schritt
auseinandergenommen, wie vermutet war SSL CuRL das Problem :)
a) auf dem Testsystem ist nur ein privates Zertifikat am Laufen,
weswegen curl hier gemeckert hat; dazu habe ich dann die Option
CURLOPT_SSL_VERIFYPEER auf FALSE gesetzt (ist standardmässig true, aber
hier an nem Testsystem muss das Zertifikat nicht unbedingt gecheckt werden).
Umzustellen in t3lib/class.t3lib_div.php, ca. Zeile 2498 (also, als neue
Zeile, die Option existiert garnicht). Und ich weiss, Änderungen im Core
sind dreckig und sollten nicht gemacht werden ;-)
b) Username/Passwort werden nur bei normalen http-Verbindungen
hinzugefügt, hier habe ich dann in
mod2/class.tx_directmail_dmail.php die Funktion addUserPass erweitert.
Vorher:
function addUserPass($url){
$user = $this-params['http_username'];
$pass = $this-params['http_password'];
if ($user $pass substr($url,0,7)=='http://'){
$url = 'http://'.$user.':'.$pass.'@'.substr($url,7);
}
return $url;
}
Nachher:
function addUserPass($url){
$user = $this-params['http_username'];
$pass = $this-params['http_password'];
if ($user $pass substr($url,0,7)=='http://'){
$url = 'http://'.$user.':'.$pass.'@'.substr($url,7);
} elseif ($user $pass substr($url,0,8)=='https://') {
$url = 'https://'.$user.':'.$pass.'@'.substr($url,8);
}
return $url;
}
Geht zwar sicher auch einfacher und eleganter, für die Q'n'D-Lösung tuts
das aber ;-)
Damit lässt sich nun brav der Newsletter parsen (HTML- und Textvariante)
und die restlichen Tests können beginnen :)
Grüsse,
Wolfgang
___
TYPO3-german mailing list
TYPO3-german@lists.netfielders.de
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german