Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z subskrypcja (xNewsletter)
Forum PHP.pl > Forum > Przedszkole
sw04
witam.

mam problem ze skryptemktory wysyla emaile do osob ktore wczesniej dopisaly sie do subskrypcji.
niezaleznie od ilosci osob (dodanych adresow) program wysyla emaila TYLKO do pierwszej osoby - nawet wyswietla info Newsletter successfully sended to - 1 Users ...

mial moze ktos podobny problem?

skrypt sklada sie z plikow glownych:
conf.inc.php - ogolna konfiguracja (hasla, emaile, adresy...)
language.inc.php - tlumaczenie opisow
xNewsletter.php - glowny plik (nie bede poazywal tresci bo zajmuje 593 linie) - moim zdaniem w nim tkwi problem. moze po prostu serwer nie chce wyslac kilku emaili jednoczesnie i wystarczy jakies opoznienie ustawic?

jesli trzeba bedzie zamiescic caly plik to tak zrobie

prosze o pomoc co_jest.gif
pozdrawiam
phpion
Cytat(sw04 @ 19.12.2007, 17:36:56 ) *
jesli trzeba bedzie zamiescic caly plik to tak zrobie

No przydałoby się winksmiley.jpg możliwe, że wysyłka maila nie odbywa się w pętli w związku z czym realizowana jest tylko jeden raz. Pokaż linijkę z wysyłką maila + kilka(naście) linii powyżej&poniżej.
sw04
  1. <?php
  2. // get email's
  3. $fp = fopen($cfg['file'], "r");
  4. $str = fread( $fp, filesize($cfg['file']) );
  5. fclose($fp);
  6.  
  7. $all_mails = explode("%", $str);
  8.  
  9. // send them
  10. foreach($all_mails as $mail) {
  11.  
  12. if( @mail($mail, $subj, $newsl, $headers) ) $cnt++;
  13. else break;
  14.  
  15. }
  16.  
  17. // delete the count from the empty-address at the end
  18. $cnt--;
  19.  
  20. return "<div id='box'><li>Newsletter wysłano do <b>".$cnt." osób</b> ...</li>\n<li><a href='".$_SERVER['PHP_SELF']."?secure=".$_POST['secure']."' title='".BACK."'>".BACK."</a></li></div>";
  21. }
  22.  
  23. /* show all eMail's in list */
  24. function showall() {
  25.  
  26. global $cfg;
  27.  
  28. // get them
  29. $fp = fopen($cfg['file'], "r");
  30. $str = fread( $fp, filesize($cfg['file']) );
  31. fclose($fp);
  32.  
  33. $adr = explode("%", $str);
  34. asort($adr);
  35. ?>


chyba o to chodzi wstydnis.gif
zalaczam tutaj takze tresc pliku skopiowana i zapisana w .txt
phpion
Domyślam się, że maile w pliku zapisywane są w formie:
Kod
mail1%mail2....mailN%

Owa funkcja teoretycznie powinna działać poprawnie ale zdebuguj ją zamieniając swoją pętlę foreach na:
  1. <?php
  2. echo 'Wszystkie maile: '.$str.'<br />';
  3.  
  4. foreach($all_mails as $mail) {
  5. if(mail($mail, $subj, $newsl, $headers) ) {
  6. echo 'Wyslano do '.$mail;
  7.  
  8. $cnt++;
  9. }
  10. else {
  11. echo '!!! Problem z wyslaniem do '.$mail.' !!!';
  12. }
  13.  
  14. echo '<br />';
  15. }
  16.  
  17. exit();
  18. ?>
sw04
Wszystkie maile: k.walter@interia.pl%...%...%...%
888 Problem z wyslaniem do k.walter@interia.pl 888
888 Problem z wyslaniem do ... 888
888 Problem z wyslaniem do ... 888
888 Problem z wyslaniem do ...888
888 Problem z wyslaniem do 888

w pliku mam zapisane 4 emaile a tutaj pokazuje jakby bylo 5
... <-- tutaj byly adresy email ale zamienilem na kropki, bo nie sa tutaj potrzebne smile.gif
888 <-- wstawilem zamiast wykrzyknikow bo forum nie chcialo przepuscic posta




wstawilem tak :

  1. <?php
  2. // send them
  3. echo 'Wszystkie maile: '.$str.'<br />';
  4.  
  5. foreach($all_mails as $mail) {
  6. if(mail($mail, $subj, $newsl, $headers) ) {
  7. echo 'Wyslano do '.$mail;
  8.  
  9. $cnt++;
  10. }
  11. else {
  12. echo '!!! Problem z wyslaniem do '.$mail.' !!!';
  13. }
  14.  
  15. echo '<br />';
  16. }
  17.  
  18. exit();
  19.  
  20. // delete the count from the empty-address at the end
  21. $cnt--;
  22. ?>


edit: pomimo wyskakujacego bledu z informacja o niewyslaniu wiadomosci emaile... sa wysylane blinksmiley.gif
jak teraz zmienic ta informacje aby pokazywala ze emaile wyslano?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.