Problem mit Newsletterscript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit Newsletterscript

    Hallo,

    Ich will mein Newsletterscript auf SMTP umstellen, da die mail() Funktion doch recht langsam ist.

    Leider bleibt es nach der 1. Mail schon hängen. Hier mal der Quellcode:

    PHP-Code:
    <?php include('menu.php'); ?>
    <?php
    require ('sesspruf.php');
    sesspruf($sessionid);
    require(
    '../config/config.php');

    $db mysql_connect($dbhost$dbuser$dbpass);
    mysql_select_db($dbname,$db);
    $ok=1;
    $sql mysql_query("SELECT email from mt_user");
    $eanzahl=mysql_num_rows($sql);

    $daten=mysql_query("select * from mt_settings");
    $setting=mysql_fetch_array($daten);
    $adminmail=$setting[adminmail];

    if(
    $verschicken){
    require 
    'SMTP.php';

    $host 'smtp.1und1.com';
    $from 'info@meinedomain.de';

    /* Create a new Net_SMTP object. */
    if (! ($smtp = new Net_SMTP($host))) {
        die(
    "Unable to instantiate Net_SMTP object\n");
    }

    /* Connect to the SMTP server. */
    if (PEAR::isError($e $smtp->connect())) {
        die(
    $e->getMessage() . "\n");
    }

    /* Send the 'MAIL FROM:' SMTP command. */
    if (PEAR::isError($smtp->mailFrom($from))) {
        die(
    "Unable to set sender to <$from>\n");
    }

    for (
    $x=0;$x<$eanzahl-0;$x++){
    echo 
    "$ok - ";
    $ok=$ok+1;
    flush();
        
    $rcpt=mysql_result($sql,$x,"email");
    /* Address the message to each of the recipients. */
        
    if (PEAR::isError($res $smtp->rcptTo($rcpt))) {
            die(
    "Unable to add recipient <$rcpt>: " $res->getMessage() . "\n");
    }

    /* Set the body of the message. */
    if (PEAR::isError($smtp->data($ueberschrift "\r\n" $haupt))) {
        die(
    "Unable to send data\n");
    }

    }
    $ausgabe="<b><font color=\"#FF0000\" size=\"2\" face=\"Verdana\">Newsletter wurde an $eanzahl Personen erfolgreich verschickt.</font></b>";
    /* Disconnect from the SMTP server. */
    $smtp->disconnect();
    }

       echo 
    "<html>";
       echo 
    "<head>";
       echo 
    "<title>$titel</title>";
       echo 
    "</head>";
       echo 
    "<body>";
       echo 
    "<center>";
       echo 
    "$ausgabe<br><br>";
       echo 
    "<font size=\"2\" face=\"Verdana\">Newsletter an: $eanzahl Personen schicken.<br><br>Bei einer großen Mitgliederzahl kann der Versand etwas dauern. Nach klicken auf Verschicken, bitte so lange warten, bis ganz oben eine Bestätigung kommt.";
       echo 
    "<form method=\"post\" action=\"$PHP_SELF\">";
       echo 
    "<br>Email Betreff<br><input type=\"text\" size=\"35\" name=\"ueberschrift\" value=\"$ueberschrift\">";
       echo 
    "<br>Email Text:<br><textarea rows=\"10\" cols=\"50\" name=\"haupt\">$haupt</textarea>";
       echo 
    "<br><input type=\"Submit\" name=\"verschicken\" value=\"Verschicken\"><input type=\"hidden\" name=\"sessionid\" value=\"$sessionid\"></form></font>";
       
    mysql_close($db);
    ?>
    Es wird nur 1 Mail verschickt und dann bekomm ich die Fehlermeldung "unable to add recipient"...
    Kann mir da jemand weiter helfen?

  • #2
    du musst nach jeder mail sagen, dass sie zuende ist, bevor du eine neue mail verfassen kannst.

    und da du das nicht machst, ist die eingabe eines neuen empfängers nicht korrekt an der stellt, bzw würde im mailbody selber stehen. daher kann der smtp-server auch keine bestätigung senden und dein script erkennt den korrekten marker nicht und sagt, le** mich am ar*** ;-)

    also brav mail beenden ... ;-)

    einfach einen zeilenvorschub (\r\n) und anschliessend einen . (punkt) an den server senden.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar

    Lädt...
    X