envoi de mail

Eléphanteau du PHP | 17 Messages

22 mai 2008, 11:10

Bonjour à tous.

Je débute en php et je voudrais savoir d'où vient cette erreur
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Users\yanus\Desktop\greggy flash\test.php on line 1
mon code est le suivant:
<?php mail('mon adresse','sujet','message'); ?>
Merci d'avance

Mammouth du PHP | 1353 Messages

22 mai 2008, 11:17

Bonjour,
Le problème vient du fait que la variable From n'est pas connue de base dans ton php.ini . Il faut donc que tu définisses toi même les headers.

Exemple :
<?php
     $to      = '[email protected]';
     $subject = 'le sujet';
     $message = 'Bonjour !';
     $headers = 'From: [email protected]' . "\r\n" .
     'Reply-To: [email protected]' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
 ?> 
regarde la doc de la fonction mail() de php pour plus d'informations.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 17 Messages

22 mai 2008, 11:23

Okay merci pour ta réponse.

Mais un autre pb en découle, ça va peut être vous paraître ridicule mais comme je débute je comprends pas:

Mon code est donc maintenant le suivant :
<?php 
	$headers = 'From: [email protected]' . "\r\n" .
    'Reply-To: [email protected]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion(); 
	mail('mon adresse','sujet','message',$headers); 
?>
Mais le message d'erreur est maitenant celui-ci :
Warning: mail() [function.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:\Users\yanus\Desktop\greggy flash\test.php on line 5

Mammouth du PHP | 1353 Messages

22 mai 2008, 11:26

Dans un autre sujet:
Il se peut que ton script ne fonctionne pas en local. C'est ce qui m'arrive fréquemment...du coup, je transfère mes scripts d'envoi de mail sur le serveur pour les tester...en envoyant toujours à moi-même comme destinataire, dans un premier temps...pour ne pas laisser un internaute spammer (ou alors protège ta page, pour le temps du développement, par un .htaccess).

L'intérêt est de tester ce qui se passe réellement.
En attendant, en local, tu affiche le texte de l'e-mail au lieu de la commande mail().

Sinon, comme parade, au lieu de la simple fonction mail() de PHP, j'utilise HTMLMimeMail de PHPGuru.org.(version PHP5). Il s'agit de scripts PHP déjà écrits, à télécharger, avec des exemples de comment utiliser ces scripts.
Basiquement, cela te permet d'envoyer un email, et dans les paramétrages, tu peux mettre un SMTP (même réglage que dans ton logiciel de messagerie email, celui de ton fournisseur internet). Ainsi je peux tester en local l'envoi de mail. Sinon, je transfère mes scripts sur le serveur.
Il est difficile d'envoyer des mails en local, donc si tu peux tester sur serveur ca sera plus simple.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 17 Messages

22 mai 2008, 12:14

Ok merci bcp
Je viens de tester en ligner ça fonctionne nickel.

Seulement j'ai un problème d'accent je vais voir cmt arranger ça.( si qqn a une idée :wink: )

Merci encore