Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/10/2011, 00h54   #1
Invité régulier
 
Inscription : décembre 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 42
Points : 6
Points : 6
Par défaut Problème d'envoi d' e-mail

Bonjour,

J’ai le problème suivant :

Je voudrais pouvoir envoyer des e-mails à partir de mon code PHP. J’ai essayé le code PHP suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
		 $subject = "Hello!";
		 $body = "Hello,\n\nHow are you?";
 
		 if ($e_mail, $subject, $body)) 
		 {
			echo("<p>Message successfully sent!</p>");
		 } else 
		 {
			echo("<p>Message delivery failed...</p>");
		 }
	?>
Le navigateur me renvoie le message d’erreur suivant :

Citation:
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 (xxx).php on line 5
Pourtant, j’ai bien modifié, dans C:\wamp\bin\php\php5.3.\ php.ini, la ligne initialement « SMTP = localhost » en « SMTP = smtp.orange.fr », et ensuite, j’ai rebooté ma machine.

Je ne comprends pas où l’interpréteur trouve encore le mot « localhost ». N’ai-je pas écrit dans le bon fichier php.ini ? Comment faire avec la fonction ini_set() ?

Merci d'avance,

Zorglbug
zorglbug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2011, 17h05   #2
Membre expérimenté
 
Inscription : janvier 2007
Messages : 620
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 620
Points : 553
Points : 553
Bonjour,
Que donne ce code?
Code php :
1
2
3
4
<?php
$var=ini_get('SMTP');
echo 'la valeur de smtp '.$var;
?>
kabkab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2011, 19h58   #3
Invité régulier
 
Inscription : décembre 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 42
Points : 6
Points : 6
Bonjour Kabkab,

ces lignes de code donnent :

la valeur de smtp localhost

Z
zorglbug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 10h22   #4
Invité de passage
 
Homme
Inscription : août 2010
Messages : 128
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2010
Messages : 128
Points : 1
Points : 1
Par défaut email en php

Bonjour,

Si tu fais les tests en localhost, il me semble que cela ne marche pas.J'utilise easyphp chez moi est l'envoi ne marché pas puis j'ai testé le code sur un serveur et ça à fonctionné.
Moi j'ai mis ce code sans changer les attributs est ça marche donc si cela peut t'aider :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
 
$msg_erreur = "Les champs suivants doivent être remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE','adressemail@xxxx.fr'); // remplacer par votre email
define('MAIL_SUJET','Bulletin');
 
// vérification des champs
if (empty($_POST['civilite']))
$message .= "Votre civilité<br/>";
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['prenom']))
$message .= "Votre prenom<br/>";
if (empty($_POST['situation']))
$message .= "Votre situation<br/>";
 
 
// si un champ est vide, on affiche le message d'erreur et on stoppe le script
if (strlen($message) > strlen($msg_erreur))
{
    $message;die();
}
 
// sinon c'est ok => on continue
foreach($_POST as $index => $valeur) {
  $$index = stripslashes(trim($valeur));
}
 
 
//Préparation de l'entête du mail:
$mail_entete  = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
 
// préparation du corps du mail
 
 
$mail_corps  = "Message de : $civilite $nom $prenom\n";
$mail_corps .= "Situation : $situation\n";
$mail_corps .= "Adresse : $adresse $code_post $ville\n";
 
 
 
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete))
 
{
  //Le mail est bien expédié
   $msg_ok;
}
else
{
  //Le mail n'a pas été expédié
   "Une erreur est survenue lors de l'envoi du formulaire par email";
}
 
 
?>
 
<? include("inc/site-bas.inc.php"); ?>
Marc31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 16h55   #5
Membre expérimenté
 
Inscription : janvier 2007
Messages : 620
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 620
Points : 553
Points : 553
Bonjour,
Pour l'utilisation du mail en local, il y a l'astuce du fake sendmail ici : http://glob.com.au/sendmail/

Cela devrait résoudre le problème.
kabkab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 22h38   #6
Invité régulier
 
Inscription : décembre 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 42
Points : 6
Points : 6
Merci Kabkab et Peter11 pour vos suggestions.

Je vais les tester dans les jours qui viennent ; je vous tiens au courant.

Zorglbug
zorglbug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 23h17   #7
Invité régulier
 
Inscription : décembre 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 42
Points : 6
Points : 6
J'ai du nouveau :

Je n'avais pas remarqué qu'il existait un autre "php.ini", dans le répertoire : "c:\wamp\bin\apache2.2.21\bin".

je n'avais modifié que celui se trouvant dans "c:\wamp\bin\php\php5.3.8


Apparemment, c'est celui qui se trouve dans "c:\wamp\bin\apache2.2.21\bin" qui est pris en compte, car maintenant, je n'ai plus le message d'erreur :

Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port"

mais le message d'erreur suivant :

SMTP server response: XXX X.X.X Emetteur invalide. Invalid Sender. OFR204_405 [405] in ...

J'ai vu qu'il y a des réponses, sur le forum Developpez.net concernant cette erreur : OFR204_405

Je vais les étudier.

Zorglbug
zorglbug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 23h47   #8
Invité régulier
 
Inscription : décembre 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 42
Points : 6
Points : 6
Bon, ça y est, ça marche.

Il suffisait maintenant de formater le courrier correctement.
Merci à tous pour votre aide,

Zorglbug
zorglbug est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h36.


 
 
 
 
Partenaires

Hébergement Web