PhpMailer

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

  • PhpMailer

    Hallo zusammen!
    ich habe folgendes problem:
    ich moechte Newsletter (HTML-Format) an mehr alles 9000 kunden senden. benuetze dafuer PhpMailer von http://phpmailer.sourceforge.net/ mit SMTP authentification. Ich habe es getestet fuer etwa hundert Kunden alles funktioniert wunderbar.
    Meine Frage:
    1 wäre es vernünftig, die E-Mail an die 9000 Adressen auf einmal zu senden� (gibt es Risiken, daß der Server nicht mithält).

    Hier ist ein Ausschnitt:

    PHP-Code:

    require("class.phpmailer.php");
    require 
    'email_querry.php';

    $mail = new phpmailer();

    $mail->From     "....";
    $mail->FromName "....";

    //
    .......
    ........
    ......
    //
      
    if(isset($_POST["send_archiv"]))
      {
        
    $f_name "newsletter/" $_POST["file_name"];
        
    $region $_POST["region"];
        
    $subject $_POST["subject"];
      }


    $handle=fopen($f_name'rb');
    $f_contents=fread($handlefilesize($f_name));
    fclose($handle);

    $mail->Subject $subject;
    $mail->Body       $f_contents;
    $mail->AltBody    strip_tags($f_contents);
    $mail->IsHTML(true);

    $querry = new Email_Querry(); 
    $emails $querry->select_emails($region);
    $mail->AddAddress("admin@domain.com""...."); 

    while(
    $rows mysql_fetch_assoc($emails))
    {
      
    $emailaddress $rows["email"];
      
    $name "";
      if(isset(
    $rows["name"]))
        
    $name $rows["name"];
      
    $mail->AddBCC($emailaddress$name);
    $mail->ErrorInfo "<br>"
    }

    //+++++++++++++++++++++++++++++++++
    $mail->Host  "***";
    $mail->SMTPAuth  true;
    $mail->Username  "****";
    $mail->Password     "***";
    $mail->Mailer   "smtp";
    //+++++++++++++++++++++++++++++++++


    if(!$mail->Send())
      echo 
    "There has been a mail error sending: " $mail->ErrorInfo "<br>"
      echo 
    "<p style=\"margin-left:250px; margin-top:20px; margin-bottom:20px; color:green; font-style:italic\"> Email sent to $_POST["region"] . " </p>"; 
    ?>



    und die funktion select_emails aus der Emails_query sieht so aus:

    function select_emails(
    $group)
    {
      require 'mysql_connect.php';
      
    $sqlab = "SELECT emailname FROM .... WHERE group_name '$group'";
      
    $res = mysql_query($sqlab) or die(mysql_error());
      mysql_close(
    $link);
      return 
    $res;

    Danke fuer euere hilfe

  • #2
    1. Alle einzeln senden
    2. Nach jeweils 10 bis 100 Mails ein kleines Päuschen einlegen
    *ohne gewähr*
    Das ganze ist stark Serverabhängig
    Wir werden alle sterben

    Kommentar


    • #3
      Danke fuer deine schnelle Anwort.

      soll ich die Pause in der Schleife einbauen, wie sieht das ungefaehrt aus?

      Ist das schneller als mit blind copy ( $mail->AddBCC($emailaddress, $name); ) zu senden?

      In meiner PHPini-datei, die max_execution_time ist ist auf 160 gestzt
      max_execution_time = 160.

      soll ich auf 0 setzen? laufe ich damit Gefahren, dass das System abbricht.

      Danke!

      Kommentar


      • #4
        Damals:
        Hat mein Mailserver ab ca 30 Mails pro Minute zu gemacht, wegen: Verdacht auf Massenspam!
        Die Lösung war per Cronjob und in Häppchen verschicken.

        Heute:
        Verwende ich Ezmlm, es gibt noch viele weitere Mailinglisten Programme.
        Seitdem, keine Sorgen mehr..
        Wir werden alle sterben

        Kommentar

        Lädt...
        X