erreur dans la fonction MAIL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : erreur dans la fonction MAIL

par ouckileou » 30 mai 2006, 11:48

C'est une classe qui permet justement d'envoyer facilement des emails et gère les emails en masse.

Elle est d'ailleurs conseillée directement dans la doc PHP si vous voulez envoyez des emails en grand nombre

=> http://pear.php.net/package/Mail

par tinou » 30 mai 2006, 11:44

oui mais le gars à qui je crée le site n'a pas forcement envie de rester des plombes devant son écran à attendre que l'envoi se termine. J'ai entendu parler de PEAR MAIL, qu'est ce que c'est?? :shock:

par Ryle » 30 mai 2006, 11:44

J'avais essayé il y a un p'tit moment et il me semble qu'en jouant avec les headers on peut mettre des destinataires en copies cachées (bcc). Il faut naturellement un destinataire principal qui sera visible, mais on peut très bien se l'envoyer dans ce cas...

Après, envoyer une newsletter par mail sans passer par mail() je vois pas trop... p't'etre via la poste ? ;)

par jojolapine » 30 mai 2006, 11:35

non mais si on a le temps, on peut faire un appel de la fonction mail() pour chaque adresse e-mail, c'est sur que c'est plus long mais bon...

par guilt92 » 30 mai 2006, 11:28

sauf que chaque destinataire pourra voir le mails des autres utilisateurs...
ce qui dans certains cas n'est pas souhaitable...
Certes, mais existe t il d'autres possibilités que la fonction mail ?

par jojolapine » 30 mai 2006, 11:25

sauf que chaque destinataire pourra voir le mails des autres utilisateurs...
ce qui dans certains cas n'est pas souhaitable...

par guilt92 » 30 mai 2006, 11:02

Je pense que la fonction mail() peut etre très efficace si on l'utilise correctement :wink:

En effet, au lieu d'envoyer un mail à chacun des utilisateurs à chaque fois il te suffit dans le cadre d'une newsletter de récupérer tous les emails et de les mettres les un a la suite des autres dans une chaine de caractère, séparé par des ;. Par la suite cette chaine devient la liste des destinataires, et donc tu ne fais appel qu'une fois a la fonction mail() :)

par tinou » 30 mai 2006, 10:59

je te remercie, je vai essayer cela tout de suite.
Mais y a t il une solution plus rapide que la fonction MAIL? Je m'explique, pour l'instant j ai que deux membre enregistré, mais si j en ai 200, je ne crois pas que la fonction Mail soit super efficace.

par Ryle » 30 mai 2006, 10:53

Tu as nécessairement un fichier php.ini quelque part perdu et tout triste sur ton disque. C'est ce fichier qui contient les informations initiales nécessaires au démarrage de php. Tu vas y trouver la liste des modules actif de php (gd pour créer des images, pdf pour des pdf, ...) la gestion des sessions, des différentes bases de données, etc. et la configuration du serveur SMTP qui permet d'envoyer des emails.

Généralement il est planqué dans le dossier c:\windows, mais si ce n'est pas le cas, une recherche sur le disque devrait te permettre de le trouver :)

Si tu l'ouvres et que tu regardes dedans, tu devrais trouver la ligne

SMTP = localhost

Ce qui signifie qu'il va essayer d'utiliser la machine locale pour envoyer ses mails. Sauf que comme tu n'as très certainement pas de serveur d'envoi de mail sur ta machine, ben il y arrive pas (d'où ton message d'erreur). Il te suffit donc de virer le "localhost" et de le remplacer par le nom du smtp de ton fournisseur d'accès (que tu utilises quand tu créer un compte mail, il te demande généralement de saisir le pop et le smtp, tu dois donc pouvoir les y retrouver :))
Tu auras donc un truc du genre :

SMTP = smtp.tonFournisseur.truc

Il te suffit alors d'enregistrer les modification et de redémarrer php pour qu'elles soient prise en compte. Tu devrais alors normalement pouvoir envoyer des mails.

par zeus » 30 mai 2006, 10:31

modération : je veux bien croire que tu soit pressée de voir ton problème résolu mais je ne pense pas que ça justifie cette écriture.

Je te demande donc de reformuler ta dernière réponse parce que je n'ai pas tout compris et je ne pense pas être le seul ;)

par tinou » 30 mai 2006, 10:27

mais je sais pas du tout ou est le php.ini, je n'en utilise pas, et je ne sais pas ce qu'est le SMTP. :cry:

edit : désolé je n avai pas relu mon message, des que j ai vu mon ecriture, jai immédiatemment corrigé

par béka » 30 mai 2006, 10:14

il me smble qu'il faut que tu modifie l'adresse smtp qui pour l'instant est "localhost" dans le fichier php.ini

erreur dans la fonction MAIL

par tinou » 30 mai 2006, 10:05

voi la j'utilise la fonction mail pour une newsletter et cela me ressort une erreur avec "SMTP" je sais pas quoi

Voila deja mon code :
include'bdd.php';
  $requete="SELECT mailmembre FROM membre";
  $res=mysql_query($requete);

  $requete2="SELECT * FROM news ORDER BY 'idnews' DESC LIMIT 1 ";
  $res2=mysql_query($requete2);
  $vrai2=mysql_fetch_assoc($res2);

  While($vrai=mysql_fetch_assoc($res))
  {
  $to = $vrai['mailmembre'];
  $subject = 'Newsletter CRSU Amiens';
  $message = $vrai2['titrenews'].'    '.$vrai2['datenews']."\r\n"."\r\n".$vrai2['contenunews']."\r\n".'';

  $headers = 'From: [email protected]' . "\r\n" .
  'Reply-To: [email protected]' . "\r\n" .
  'X-Mailer: PHP/' . phpversion();

  //echo $to.'<br/>';
  //echo $message.'<br/>';
  mail($to, $subject, $message, $headers);
  }
et voila mon erreur :


Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\stage\easyphp1-8\www\nouveau site stage\envoi_mail.php on line 26
Il me l'affiche deux fois car pour l'instant j ai deux adresse mail en memoire. Y aurait-il una façon plus rapide pour envoyer une newsletter a des centaines de gens??

Merci d'avance pour votre réponse