Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] funkcja mail()
Forum PHP.pl > Forum > Przedszkole
amii
Kod
<?php
$subject = 'temat';
$message = 'jakis text';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

    
    $key=file('mail.txt');  // plik tekstowy z list emaili
    foreach ($key as $value) {
    mail($value, $subject, $message, $headers);  
    if(mail)
    {
    $i++;  // to ilość e-maili jaka została wysłana
    }
  }
    
    $fp=fopen('plik.txt', 'w+');  // otwiera plik i zapisuje ilość e-maili jaką wyslał
    fwrite($fp, $i);
    fclose($fp);
    echo $i;  // wyświetla ilość wysłanych e-maili
  
?>


Witam wszystkich.
Próbuje napisać pewien skrypt, który ma za zadanie wysyłać maile, pobierane z pliku tekstowego mail.txt i robi to. Chcę natomiast zrobić coś takiego, że program wysyła np: 10 maili przy pierwszym uruchomieniu. Po czym od następnego uruchomienia zaczyna wysyłanie od 11-21 maila na liście itd.
W plik.txt jest zapisywana ilość obsłużonych e-maili ale nie wiem jak zmusić program do wysyłki od $i-tego e-maila.
ignas1987
Jak robisz to na plikach, to zrób tak, żeby $i było zapisywane w pliku. Potem tylko wczytujesz $i i po sprawie biggrin.gif do tego musisz zrobić przypisanie wartości np $y = $i + 10, gdzie potem będziesz sprawdzał czy $i == $y

[EDIT]ahh... ten SPAM ;P [/EDIT] ale cóż... kazdy z czegoś żyje
A my administratorzy sieci małych firm musimy wszystko filtrować biggrin.gif
Spawnm
zamiast foreach daj for();
$key[0]='mail@first';

czyli będziesz dawać pętle np po 10 i $key[$i]
ignas1987
Spawnm... załóżmy że ma 1000 maili w pliku... Jaki ma sens wysyłania po 10 jak cały czas musi skrypt działać, więc nie wiem czy mój sposób nie jest lepszy... bo raz sobie wyślesz 10 jak masz czas, lub ktoś wejdzie w skrypt... a nie musisz czekać a skrypt sie zakończy. W sumie i Twój pomysł jest git, tylko trzeba wczytać ile maili zostało już wysłane z tego "pliki.txt" biggrin.gif
Spawnm
//W plik.txt jest zapisywana ilość obsłużonych e-maili ale nie wiem jak zmusić program do wysyłki od $i-tego e-maila.

//Jaki ma sens wysyłania po 10 jak cały czas musi skrypt działać,

czemu musi cały czas działać ?
ignas1987
Bo jak go wyłączysz to zgubi $i?? Chociaż nie... teraz się wczytałem... Będzie git. Patrz mój post wyżej
Spawnm
nie , bo jak już napisał autor tematu , $i jest zapisywane do pliku smile.gif
czyli wczytuje $i=0
leci for do np 10 i zapis i=10
kolejne odpalenie i=10 i for leci np do 20 .
ignas1987
wiem wiem, widze teraz.. tylko, żeby sie nie powtarzać przy wczytaniu $i trzeba zrobić $i=$i+1... Żeby ostatnie maile sie nie powtarzały. Według mnie
amii
Hmm, pewnie coś źle zrobiłem bo nie działa, wyskakuje komunikat:
Warning: mail() [function.mail]: Bad parameters to mail() function, mail not sent. in /mail.php on line 11
To dziwne przecież file zwraca plik mail.txt, jako tablicę a każdy element tej tablicy to osobna linia w pliku, więc o co chodzi....?

Kod
<?php
$subject = 'temat';
$message = 'jakis text';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

    
    $key=file('mail.txt');  // plik tekstowy z list emaili
    for ($i=0; $key[$i]<10; $i++) {
    mail($key[$i], $subject, $message, $headers);  
}
    
    $fp=fopen('plik.txt', 'w+');  // otwiera plik i zapisuje ilość e-maili jaką wyslał
    fwrite($fp, $i);
    fclose($fp);
    echo $i;  // wyświetla ilość wysłanych e-maili
  
?>
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.