[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