Probleme bei mail mit php



  • tagchen...
    will nen newslettersystem aufbauen. soweit funzt auch alles.
    habe mir die testmails zu web.de / gmx.de gesendet.
    in dem text des newsletters habe ich links eingebaut, diese werden auch in jedem mailprogramm angezeigt und als solche gekennzeichnet.
    nun mein problem:

    bei web.de und gmx.de werde ich nicht weitergeleitet wenn ich den link betätige.
    bei mozilla mail kommt folgende fehlermeldung: ttp ist kein eingetragenes protokoll. also, der schneidet mir vorn das h von http://blabla weg?

    woran kann das liegen, bzw was mache ich falsch?!

    $test="http://";
    preg_match_all("|<a>([^>]+)</a>|U", $_REQUEST["text"], $litext);
    $d=count($litext[1]);
    for ($g=0; $g<$d; $g++)
      {
          preg_match_all("|<a>([^>]+)</a>|U", $_REQUEST["text"], $litext);
          if ($g==0)
          {
    	$neu_text=str_replace("<a>".$litext[1][$g]."</a>"," <a href='".$test."".$litext[1][$g]."' target='_blank'>".$litext[1][$g]."</a> ",$_REQUEST["text"]);
          }
          else
          {
    	$neu_text=str_replace("<a>".$litext[1][$g]."</a>"," <a href='".$test."".$litext[1][$g]."' target='_blank' title='".$litext[1][$g]."'>".$litext[1][$g]."</a> ",$neu_text);
          }			
    	$ne_text=str_replace("href=www","href=http://www",$neu_text);
      }
    $empfang="irgendwer@irgendwas.de";
    $betreff=$_REQUEST["betreff"];
    $message="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
    <html>
    <head>
    <title>Newsletter www.xxxxxx.de</title>
    <meta name=\"DC.Title\" content=\"Newsletter www.xxxxxxx.de\">
    <meta name=\"DC.Language\" content=\"de, en, en-us\">
    <meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">
    </head>
    <body><table><tr><td>".$ne_text."</td></tr><tr><td></td></tr></table></body></html>";
    $from="From:newsletter@xxxxxxxx.de\n";
    $from .= "MIME-Version: 1.0\n";
    $from .= "Content-Type: text/html; charset=\"iso-8859-1\"; format=flowed\n";
    $from .= "Content-Transfer-Encoding: quoted-printable";
    mail($empfang, $betreff, $message, $from);	
    header("location:newsletter.php");
    

    ich hoffe ihr könnt mir helfen und bedanke mich schonmal für eure mühe und hilfe!

    thx a lot
    bart(holomeus)



  • also bei mir funktioniert das skript einwandfrei - vielleicht magst du ja ein paar Werte nennen mit denen es nicht umgehen kann, sodass man mal genau sieht, wann es bei dir probleme macht 🙂



  • hallo..

    danke für deinen schnelle mail.
    das script an sich läuft auch wunderbar. nur die email clients haben probleme mit der darstellung, oder die zusammensetzung der link ist inkorrekt.
    also folgendes problem:
    im emailclient von mozilla steht im quelltext der nachricht der richtige link.
    also

    <a href="http://www.blabla.de">blabla</a>
    

    nur beim ausführen / klicken des links, kommt folgender fehler:
    "ttp kein registriertes Protokoll"

    also nehme ich mal an das mit folgenden zeilen irgendwas nicht stimmt:

    preg_match_all("|<a>([^>]+)</a>|U", $_REQUEST["text"], $litext);
          if ($g==0)
          {
        $neu_text=str_replace("<a>".$litext[1][$g]."</a>"," <a href='".$test."".$litext[1][$g]."' target='_blank'>".$litext[1][$g]."</a> ",$_REQUEST["text"]);
          }
          else
          {
        $neu_text=str_replace("<a>".$litext[1][$g]."</a>"," <a href='".$test."".$litext[1][$g]."' target='_blank' title='".$litext[1][$g]."'>".$litext[1][$g]."</a> ",$neu_text);
          }            
        $ne_text=str_replace("href=www","href=http://www",$neu_text);
    

    das nächste problem ist, das beispielsweise gmx und web.de die links zwar ordnungsgemäß darstellen, aber keine weiterleitung durchführen. sondern eine interne seite von gmx oder web.de aufrufen.

    keine ahnung warum. ich denke, dass beim zusammensetzen des links in besagten zeilen ^^ irgendwas durcheinander kommt.
    danke schonml und erstmal für eure hilfe.

    thx a lot
    bart(holomeus)



  • tagchen...
    so leute *hüstel* habe es hinbekommen.
    habe die falschen parameter im header angegeben.

    wenn man die folgenden parameter für die mail funktion setzt klappt alles wunderbar!

    $from .= "Content-Type: text/html; charset=\"us-ascii\""; 
    $from .= "Content-Transfer-Encoding: 7bit";
    

    ich weiß zwar nicht warum, da ich immer dachte die iso-xxxx wäre standard etc. aber da muss ich mich nochmal schlau machen.

    thx @ll
    cu bart


Anmelden zum Antworten