• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

newsletter script funktioniert nicht

Status
Für weitere Antworten geschlossen.

Frank

Neues Mitglied
hallo community.

Ich habe eine website mit einem newsbereich. benutzer der seite können beliebig sich in einen newsletter eintragen. In diesem Newsletter können sie auswählen, ob sie den newsletter auf deutsch oder auf englisch erhalten wollen und ob sie nur benachrichtigt werden möchten, dass neue news vorhanden sind oder ob sie gleich den ganzen text haben möchten.

Ich habe dazu ein script entworfen aber es scheint nicht zu funktionieren.
Per if frage ich ab ob der vorgang funktioniert hat, aber es kommt jedes mal newsletter fehlgeschlagen. die abfrage aus der db mit den maildaten funktioniert genauso wie die while schleife ordnungsgemäß durchläuft. das heißt das der gehler woanders liegen muss. ich hoffe ihr könnt mir helfen.

Funktion send_mail() (den code von bbcode2() erspare ich euch lieber^^)
PHP:
<?php
function send_mail($titel,$nachricht,$empfaenger)
{
    $absender = ".:*ts.4.free*:. http://www.ts-onlyfree.de";
    $Empfaenger = $empfaenger;
    $Betreff = $titel;
    $Nachricht = $nachricht;
    $Header = "MIME-Version: 1.0\n";
    $Header .= "Content-type: text/html; charset=iso-8859-1\n";
    $Header .= "From: .:*ts.4.free*:. Newsletter <[email protected]>\n";
    mail($Empfaenger, $Betreff, $Nachricht, $Header);
}
?>
und hier der schnipsel der den newsletter versenden soll (Die daten die Requested werden wurden vorher über ein formular erfolgreich übermitelt
PHP:
<?php
if($_REQUEST['post']=="true")
{
    $name = ".:*ts.4.free*:. ".$_SESSION['user'];
    $titelde = $_REQUEST['titelde'];
    $textde = $_REQUEST['textde'];
    $titelen = $_REQUEST['titelen'];
    $texten = $_REQUEST['texten'];
    $letter = $_REQUEST['letter'];

    if ($letter==1)
    {
        $sql = "SELECT mail,best,lang FROM ts_abbo";
        $res = mysql_query($sql);
        while ($row = mysql_fetch_object($res))
        {
            if ($row->lang == "de")
           {
                switch($row->best)
                {
                    case 1:
                    if(send_mail(".:*ts.4.free*:. Newletter","
                    Es sind neue News auf 
                    <a href=\"http://www.ts-onlyfree.de/?site=news\">www.ts-onlyfree</a> vorhanden.<br><br>
                    Um diesen Newsletter abzumelden oder die Art des Newsletters zu ändern gehen sie bitte auf 
                    <a href=\"http://www.ts-onlyfree.de/?site=abbonnews\">Abbonement löschen/ändern</a>
                    ",$mail))
                    {
                        echo"<br><br>Newsletter erfolgreich versendet";
                    }
                    else
                    {
                         echo"<br><br>newsletter fehlgeschlagen";
                    }
                    break;

                    case 2:
                    if(send_mail(".:*ts.4.free*:. Newletter","
                    Es sind neue News auf 
                    <a href=\"http://www.ts-onlyfree.de/?site=news\">www.ts-onlyfree</a> 
                    vorhanden.<br><br>
                    Um diesen Newsletter abzumelden oder die Art des Newsletters zu ändern gehen sie bitte auf 
                    <a href=\"http://www.ts-onlyfree.de/?site=abbonnews\">Abbonement löschen/ändern</a><br><br>
                    <table style=\"width:100%\">
                      <tr>
                        <td>
                          <b>von:</b>&nbsp;<br>".$name."
                        </td>
                        <td>
                          <b>am:</b><br>".date("d.m.y",$timestamp)."
                        </td>
                        <td>
                          <b>um</b><br>".date("H:i:s",$timestamp)."&nbsp;uhr
                        </td>
                      </tr>
                      <tr>
                        <td colspan=\"3\" style=\"border-top:1px solid black;\">
                          <u>".$titelde."</u></span>
                        </td>
                      </tr>
                      <tr>
                        <td colspan=\"3\" style=\"border-bottom:1px solid black;\">
                          ".bbcode2($textde)."
                        </td>
                      </tr>
                      <tr>
                        <td colspan=\"3\">&nbsp;</td>
                      </tr>      
                    </table>
                    ",$mail))
                    {
                        echo"<br><br>Newsletter erfolgreich versendet";
                    }
                    else
                    {
                         echo"<br><br>newsletter fehlgeschlagen";
                    }
                    break;
                }
            }
        }   
    }
}

Ich hoffe ich habe den code einigermaßen übersichtilich eingerückt
 
Zuletzt bearbeitet:
ich geh jetz einfach mal davon aus das die spalte mail aus der db die emailadresse enthält.
Und wenn du nur $mail benutzt wird das nichts. Du musst in der while schleife per $row->mail drauf zugreifen, wie du es bei lang gemacht hast, ansonsten müsstest du eine Warnung bekommen, dass die variable nich gesetzt ist.
Zum coden benutzt man immer error_reporting(E_ALL); dann hättest du das gesehen und wärst wahrscheinlich selber draufgekommen.

Greetz
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben