Page 1 sur 1

comment corriger l'erreur ??

Posté : 03 mars 2006, 20:59
par Laurence
Bonjour,

Je m'initie en ce moment au php sur Dreamweaver 8.
:?: Je fais un exercice et je suis bloquée par un message d'erreur. Il s'agit d'apprendre à envoyer un mail via php.

code php tapé :
<?php
$to = "[email protected]";
$subject = "Ici le message du sujet";
$body = "Ici le corps du message";
$headers = "From: [email protected]";
mail($to,$subject,$body,$headers);
?>
Je l'envoie sur mon navigateur (easyphp) et je reçois le message suivant :
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:\documents and settings\ldossier\mes documents\www\sitedreamweaver\messagesent.php on line 6

Le bouquin d'exercice dit que l'erreur peut provenir d'une mauvaise configuration du serveur de messagerie... Comment faut-il faire pour trouver l'erreur ?

Merci !

Posté : 03 mars 2006, 21:11
par charabia
En local il faut que tu te renseignes dans la doc d'easyphp pour voir comment fonctionnent les mails et que ce que tu dois configurer pour.

Posté : 04 mars 2006, 00:04
par Cyrano
Je vais aller un poil plus loin : il y a fort à parier que tu n'as pas de serveur SMTP installé sur ta machine. Il faut donc recourir aux services d'un serveur SMTP distant, en pour simplifier, celui de ton FAI (Fournisseur d'Accès Internet) : donc dans ton fichier de configuration php.ini, cherche la ligne SMTP et remplace localhost par l'adresse du serveur de ton FAI qui peut ressembler à smpt.free.fr ou encore smtp.wanadoo.fr. Dans le fichier, ça ressemble à ceci:
[mail function]
; For Win32 only.
SMTP = "smtp.wanadoo.fr"
smtp_port = 25

Posté : 04 mars 2006, 02:12
par Pipolako
Ah bin merci Cyrano, moi qui était pret à installer un serveur smtp sur mon propre pc jsute pour faire des tests en local, me voilà tout à coup soulagé :lol: .
Pour savoir, comme je suis chez free (je ne sais pas si je peux le dire ou en parler, supprimez si besoin), si je remplace localhost par smpt.free.fr, sous quel expéditeur va partir le mail si j'utilise la fonction mail().

En admettant que j'ai un compte sous free qui s'appelle 123. j'imagine que si j'utilise ce compte et que j'utilise la fonction mail(), le message partira de [email protected]
Je dis une bêtise ?
Ce qui m'intéresse surtout c'est de savoir si je peux utliser mon compte free en local.

Posté : 04 mars 2006, 08:54
par Cyrano
Si tu regarde ton php.ini, juste après les lignes que j'ai indiqué précédemment, il y a ceci:
; For Win32 only.
sendmail_from = [email protected]
J'ai remplacé ce qu'il y a réellement dans mon propre fichier, mais le principe est là.

suite

Posté : 04 mars 2006, 11:05
par Laurence
Merci de ces réponses.
Maintenant, avec les rectifs, je n'ai plus de message d'erreur...
par contre, une fois sur trois seulement je reçois un mail, et il n'y a jamais d'objet, ni "from", ni le corps du message...

A ce niveau, ce doit être une finesse dans easyphp ?

merci encore en tout cas !

Posté : 04 mars 2006, 11:11
par Cyrano
Non, c'est une subtilité de la fonction mail() : la doc sur cette fonction est assez claire et illustrée de quelques exemples pratiques, fais des essais, tu devrais complètement résoudre ce problème relativement facilement. Il faudrait en fait ajouter certains éléments dans l'en-tête du message.

Posté : 04 mars 2006, 12:24
par Pipolako
Désolé si je tape encore dans la question, mais en réglant
sendmail_from = [email protected]
dans php.ini, le fait est que j'ai plusieurs espaces chez free donc plusieurs comptes, l'adresse email n'est pas liée à ma connexion internet mais aux comptes que j'ai demandé d'ouvrir, alors je ne vois pas trop ce que ca donne du coup. :?

Posté : 04 mars 2006, 16:11
par Cyrano
ça risque de faire une différence au niveau des filtres anti-spam qui eux vont lire les en-tête du message et relever des différences entre certains éléments qui ne devraient pas avoir lieu d'être.

Donc entendons-nous bien : il s'agit en local de faire des essais: n'envisagez pas de faire de l'envoi massif depuis votre machine, c'est à peu près certain que la plupart de vos messages seront bloqués sur beaucoup de boites de courriers équipées de filtres anti-spam.