comment corriger l'erreur ??

Petit nouveau ! | 3 Messages

03 mars 2006, 20:59

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 !

Avatar du membre
ViPHP
ViPHP | 3008 Messages

03 mars 2006, 21:11

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.

Mammouth du PHP | 19672 Messages

04 mars 2006, 00:04

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 43 Messages

04 mars 2006, 02:12

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.
Venez vous inscrire sur Projet-Ivy, un site de rôle play intéressant ouvert à de nombreuses rencontres et discussions intéressantes, si vous comptez vous inscrire, contactez moi. (pour que je sois votre parrain ;) )

Mammouth du PHP | 19672 Messages

04 mars 2006, 08:54

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à.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

04 mars 2006, 11:05

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 !

Mammouth du PHP | 19672 Messages

04 mars 2006, 11:11

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 43 Messages

04 mars 2006, 12:24

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. :?
Venez vous inscrire sur Projet-Ivy, un site de rôle play intéressant ouvert à de nombreuses rencontres et discussions intéressantes, si vous comptez vous inscrire, contactez moi. (pour que je sois votre parrain ;) )

Mammouth du PHP | 19672 Messages

04 mars 2006, 16:11

ç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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: