Fonction mail()

kaking Messages postés 52 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 avril 2020 - 8 avril 2008 à 08:36
kaking Messages postés 52 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 avril 2020 - 11 avril 2008 à 08:03
bonjour tous le monde

alors voila mon probleme: je veux envoyer un mail a tous les membres de mon site (5 membres!) mais seul 3 recoivent le mail...et apres j'obtiens ceci:

Warning: mail() [function.mail]: Failed to connect to mailserver at "smtp.orange.fr" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP 2.0b1\www\panierachat\exemplepanier\admin\newsletter.php on line 53

pour le quatrieme membre...pourquoi?

je suis en localhost sur easyphp-en local donc-

merci

12 réponses

cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
8 avril 2008 à 12:45
Salut,

Certains FAI limitent l'usage de la fonction mail, pour limiter les envois de spam. Si c'est ça, temporise le nombre d'envois (par groupe de 3 ou 1 toutes les 5 secondes...), ou prends un abonnement chez un hébergeur qui repondra à tes besoins.
0
kaking Messages postés 52 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 avril 2020
8 avril 2008 à 14:15
merci pour ta reponse car efectivement je pense que c 'est un probleme de ce genre

par contre je n'ai aucune idee de comment (avec quel code) je peux temporiser le nombres d'envois...tu saurais s'il te plais? toute aide m'est VRAIMENT precieuse.


encore merci pour la piste
0
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
8 avril 2008 à 14:31
Salut !

Je vois que tu travail en local. Verifie que tu n'ai pas un firewall qui te bloque le port 25 car pour moi ça marche très bien.

J'utilise la classe phpmailer, et ça marche du tonnere

    $mail = new PHPmailer();
    $mail->IsSMTP();
    $mail->Host = "smtp.orange.fr";
    $mail->IsHTML(true);

Le port est bien le 25 et il n'y a pas de soucis. Meme pas besoin d'aller toucher au php.ini.

<hr />
lowke<sub>yhttp://s11.bitefight.fr/c.php?uid=45971</sub>
0
kaking Messages postés 52 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 avril 2020
8 avril 2008 à 14:45
dabord merci beaucoup pour ta reponse

ensuite heuuuuu...je comprends pas ou faut mettre ton code... dans php.ini? ou dans mon script?

parceque mon script est le suivant:

$requete = mysql_query("SELECT * FROM membre");
//Ensuite on envoie les messages

while ($resultat = mysql_fetch_array($requete))
{

$message = nl2br($message);
$titre = htmlentities($titre);

$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: <$email_admin>\r\n";
$entete .= "Reply-To: $email_admin\r\n";
$mail = $resultat['mail'];
mail($mail,$titre,$message,$entete);
echo 'Envoyé à ' . $mail . '
';


}


alors ou c est qu'il faut que je rajoute ton code pour qu'il ne me bloque pas au bout de 3 envois s'il te plais?


merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 1
8 avril 2008 à 23:06
Salut,

Euh je vois pas trop le rapport avec le probléme dans ce que tu dis lowkey... Il arrive à envoyer des mails donc je vois pas le problème avec un quelconque firewall...

Si ça te le fais toujours après 3 messages et que les trois premiers se rendent bien, alors je suis d'avis qu'AlexN a raison, c'est ton FAI qui limite. Peut être que de mettre un temps de pause entre chaque envoi reglèrait le problème.

Informe toi sur la fonction sleep : http://ca3.php.net/manual/en/function.sleep.php

Et avec set_time_limit (parce que un délais de 5 secondes entre chaque envois va rapidement te faire dépasser ton max exec time)
http://ca3.php.net/manual/en/function.set-time-limit.php

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 1
8 avril 2008 à 23:12
Pour faire un sleep à chaque 3 envois tu peux ajouter:

(int) $nbr = 0; avant ton while
et
$nbr++;
if (($nbr%3)>0) sleep(5);

Ou une autre façon:

(int) $nbr = 0; avant ton while

et
$nbr++

if ($nbr 3) {$nbr 0; sleep(5);}

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
8 avril 2008 à 23:37
Oups, désolé, je n'avais pas compris la phrase dans ce sens là... désolé du dérangement.

<hr />lowke<sub>yhttp://s11.bitefight.fr/c.php?uid=45971</sub>
0
kaking Messages postés 52 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 avril 2020
9 avril 2008 à 08:10
MERCIIIIII


ca fonctionne!!!! merci bôôôôôôôcoup!

si j'ai bien compris, tous les 3 mails, il y a une pause de 5 secondes?

j'ai remplacé le 5 par 1 mais si mon site abrite des centaines de personnes, cela fonctionnera quand meme? rien ne bloquera?

merci
0
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 1
9 avril 2008 à 22:15
Salut,

En fait ça dépend de ton max_execution time, il est le plus souvent de 30 secondes(donc à 30 secondes si tu as des centaines de personnes alors oui ça risque de bloquer).

Ça dépend de l'hébergeur tu peux essayé une fonction tel quel set_time_limit pour éviter que ton script soit coupé avant la fin. Si ton hébergeur refuse cette fonction, alors cherche sur ce site il y a quelques astuces pour executer un script au dela de son temps maximal permis :).

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
kaking Messages postés 52 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 avril 2020
10 avril 2008 à 08:38
merci mais ...

comment j'utilise cette fonction et a quoi sert elle? (je ne suis pas au courant c'est quoi le max_execution time, et comment le detourner?)


merci de toutes ses precisions (et de celles a venir ^^)
0
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 1
10 avril 2008 à 21:09
Salut,

Dans mon premier message je t'avais laissé un lien vers la documentation de la fonction: http://ca3.php.net/manual/fr/function.set-time-limit.php

Comme je te dis il se peut que ton hébergeur l'ait désactivé. Si c'est le cas, recherche sur ce site même, par exemple: http://www.phpcs.com/recherche.aspx?r=executer+un+script te donne plusieurs exemples pour contourner le problème.

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
kaking Messages postés 52 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 avril 2020
11 avril 2008 à 08:03
merci beaucoup pour toutes tes precisions
0