[TYPO3-german] direct_mail & SSL
Wolfgang Wahl
typo3 at ovofrito.de
Wed Sep 10 15:11:39 CEST 2008
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
More information about the TYPO3-german
mailing list