php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.03.2005, 14:55  
Gast
 
Beiträge: n/a
Standard Timeout beim Mails versenden

Hallo zusammen,

ich habe ein Newsletterskript geschrieben, welches mittels der Funktion mail() an alle in der Liste eingetragenen Adresse eine Email versendet. Anschließend wurde eine HTML-Seite ausgegeben, in der dann stand ob das ganze funktioniert hat oder nicht.
Funktionierte bisher auch prima. Jetzt sind da allerdings 260 Adressen eingetragen und das ganze dauert doch relativ lange. Irgendwann bricht der Browser dann ab und es wird keine HTML-Seite angezeigt. Es werden aber trotzdem alle Mails verschickt.
Habe zuerst gedacht, daß das vielleicht an max_execution_time liegt. Die steht bei mir auf 30. Ich kann die allerdings auf 1000 stellen und das Skript steht immer noch hin. Bei 100 Adressen funktioniert das ganze noch und dauert so ca. 45 Sekunden.
Hab mal noch den Auszug des Skripts angehängt, welche für das Versenden der Mails zuständig ist.

PHP-Code:
for($i 0;$i <= sizeof($inhalt1);$i++){
    if(
mail($inhalt1[$i], $betreff$nachricht$header)){
        
$gesendet .= "".$inhalt1[$i]."
"
;

        echo(
' ');
    }
    else{
        
$nicht_gesendet .= "".$inhalt1[$i]."
"
;
    }

Wäre cool, wenn mir da jemand helfen könnte warum das Skript abbricht bzw. das abschließende echo() nicht mehr ausführt.

Grüße, Heppi.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.03.2005, 15:08  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

tja in deiner phpinfo findest du die max_execution_time, es gibt allerdings auch ncoh ein timeout vom webserver, der kann zum problem werden. am sinnvollsten ist es sowas aufzuteilen und über nen cronjob zu regeln oder wenn man eigenen server hat, vieleicht ein programm schreiben dass die arbeit übernimmt.

mfg
robo47
robo47 ist offline   Mit Zitat antworten
Alt 08.03.2005, 15:13  
Gast
 
Beiträge: n/a
Standard

Jemand hatte mir mal vor einiger Zeit vorgeschlagen, den eigentlichen Prozess beim E-Mail senden auszulagern, sodass es nach dem senden kein echo etc. mehr gibt.
Über eine weitere E-Mail Funktion werde ich dann darüber informiert, dass alle E-Mails gesendet wurden.
Im Browser steht dann nur noch da " emails werden gesendet " oder so in der Art.
Gerade bei sehr großen Anzahlen von Adressen wäre es eine Alternative.
Habe ich allerdings noch nicht praktisch ausprobiert, kann es mir aber gut vorstellen.
  Mit Zitat antworten
Alt 08.03.2005, 15:22  
Gast
 
Beiträge: n/a
Standard

Hi!

Schreib mal flush() mit in die Schleife und lass $i ausgeben.
Dann sollte er eigentlich durchlaufen ohne den Vorgang abzubrechen...

Gruß
Iceman
  Mit Zitat antworten
Alt 08.03.2005, 15:30  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Iceman1205
Hi!

Schreib mal flush() mit in die Schleife und lass $i ausgeben.
Dann sollte er eigentlich durchlaufen ohne den Vorgang abzubrechen...

Gruß
Iceman
Hab das mal folgendermaßen gemacht:
PHP-Code:
<?php
for($i 0;$i <= sizeof($inhalt1);$i++){
    if(
mail($inhalt1[$i], $betreff$nachricht$header)){
        
$gesendet .= "".$inhalt1[$i]."
"
;

        echo(
$i.' ');

        
flush();
    }
    else{
        
$nicht_gesendet .= "".$inhalt1[$i]."
"
;
    }
}
?>
Und siehe da - es funktioniert! Danke!
  Mit Zitat antworten
Alt 08.03.2005, 15:48  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

http://php-faq.de/q/q-mail-massenversand.html
imported_Ben ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
dateien aus verzeichnis einzeln als mail attachment versenden mathes PHP Tipps 2008 5 17.07.2008 19:45
Newsletter versenden, wie und was beachten? PsychoEagle Off-Topic Diskussionen 7 12.10.2007 12:37
HILFE: zurücksenden von Mails deren Mailadresse falsch ist PHP Tipps 2006 3 01.05.2006 12:50
fsockopen - timeout funktioniert nicht! PHP Tipps 2007 3 23.01.2006 23:46
Mails kommen nicht an mit Hamster/Mercury bicpi PHP-Fortgeschrittene 10 26.10.2005 15:03
Mails mit PHP über einen SMTP Server versenden JeeZ PHP Tipps 2005-2 15 04.09.2005 18:54
[Erledigt] Eingaben ohne Timeout piepsen PHP Tipps 2005-2 8 13.07.2005 19:20
HTML-Mail versenden? PHP Tipps 2005-2 1 23.06.2005 16:29
mail() versucht die Mails als wwwrun an den SMTP Server zu l Server, Hosting und Workstations 3 15.06.2005 11:25
timeout problöme ... PHP Tipps 2005 5 20.01.2005 17:17
HTML Mails Versenden HTML, Usability und Barrierefreiheit 6 11.01.2005 14:01
[Erledigt] In PHP Mails mit MAPI versenden? PHP-Fortgeschrittene 1 07.11.2004 18:45
TCP-Verbindungstest - Timeout einbauen PHP Tipps 2004 13 30.10.2004 14:37
Brauche dringend Hilfe ! Array als Variable versenden Sachse PHP Tipps 2004 12 18.10.2004 20:31
Mails versenden PHP Tipps 2004 3 13.09.2004 22:23

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mail timeout, phpmailer timeout, php newsletter timeout, mail senden zeitüberschreitung, php timeout, php email timeout, http://www.php.de/php-fortgeschrittene/19228-erledigt-timeout-beim-mails-versenden.html, timeout bei mails, php newsletter versenden, newsletter timeout, php mail versenden timeout, newsletter php timeout, php mail zeitüberschreitung, php newsletter script timeout, phpmailer massenversand, mail timeout php, e mail senden zeitüberschreitung, mail php timeout, php newsletter versenden timeout, php mail false

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.