Envoie email via fonction php mail() [Résolu]

Messages postés
98
Date d'inscription
samedi 25 septembre 2010
Dernière intervention
17 janvier 2012
- - Dernière réponse : cs_midoxe
Messages postés
98
Date d'inscription
samedi 25 septembre 2010
Dernière intervention
17 janvier 2012
- 14 sept. 2011 à 12:05
bonjour, c'est la première fois que je viens sur ce forum.

voilà mon problème : j'essaye d'utiliser la fonction mail() dans une page .php en local avec WAMPserver.

ma page contenant un petit formulaire en html envoie le texte vers la page "traitement" en php, cette dernière devrait renvoyer le texte sur mon adresse mail.

mais le message d'erreur suivant s'affiche :

Warning: mail() [function.mail]: Failed to connect to mailserver at "smtp.gmail.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() :

Voci mon code :

<?php

if(isset($_POST['email'])) //si variable formulaire reçu
{
$email= $_POST['email'];

//vérification email

if(false == filter_var($email, FILTER_VALIDATE_EMAIL)) //if(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
?>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
x=alert('Adresse email incorrecte...\351ssayez une autre');
location.href='courier_electro.php';
</SCRIPT>
</HEAD>

<?php
}
else
{
$sujet="recuperation mot de passe";
$message="vous allez trouver ici votre mot de passe";

// Declaration des entetes
//$entetes = "From: aouidi.ahmed@gamil.com" ;


ini_set("SMTP", "smtp.gmail.com");
ini_set("smtp_port", 25);//tester avec 465
ini_set("sendmail_from",$email);
$envoi_mail = mail('$email', '$sujet', '$message');



if (!$envoi_mail)
{ echo " Le mail n'a pas été envoyé car un problème est survenu...

" ;
}

else
{ echo " L'email a été envoyé avec succès !

"; }

}
}//fin if
?>


je précise que j'ai modifié le fichier php.ini comme cela :

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.gmail.com
; http://php.net/smtp-port
smtp_port = 25

merci pour vos réponses


...
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
98
Date d'inscription
samedi 25 septembre 2010
Dernière intervention
17 janvier 2012
3
Merci
Bonjour,

C'est bon ça marche voici mon code ça peut servir à quelqu'un

<?php

if(isset($_POST['email']))
{
$recipient= $_POST['email'];

//vérification email

if(false == filter_var($recipient, FILTER_VALIDATE_EMAIL)) //if(!filter_var($email, FILTER_VALIDATE_EMAIL))
{

echo '
<center style="color:blue"> Adresse email incorrecte...éssayez une autre </center>';
}
else
{

//connexion BDD
$conn =oci_connect('hr', 'hr');

$my_query="SELECT * from tb_user where EMAIL ='$recipient'";

$sql_query = 'SELECT COUNT(*) AS NUMBER_OF_ROWS FROM (' . $my_query . ')';

$stmt= oci_parse($conn, $sql_query);

oci_define_by_name($stmt, 'NUMBER_OF_ROWS', $number_of_rows);

oci_execute($stmt);

oci_fetch($stmt);

//echo $number_of_rows; cé très utile


if ($number_of_rows == 0 ) {

echo '
<center style="color:blue">Erreur ..!! Votre email ne correspond à aucun client</center>';

}
else
{
$truc=oci_parse($conn,"SELECT * from tb_user where EMAIL ='$recipient' ");
oci_execute($truc);
while ($dow = oci_fetch_array($truc, OCI_BOTH))
{
$nom=$dow['NOM'];
$prenom=$dow['PRENOM'];
$mdp=$dow['MDP'];
}


$Name = "Patrice François"; //senders name
$email = "p.françois@gmail.com"; //senders e-mail adress
$mail_body = 'Bonjour Mr'.' '.$nom.' '.$prenom.',
Conformément à votre demande, vous allez trouvez en dessus votre mot de passe.

Votre mot de passe est : '.$mdp.'.
'.'Cordialement,
Service Informatique XXXX' ; //mail body

$subject = "Récuperer mot de passe"; //subject
$headers ='From: Patrice Baret <'.$email.'>'."\n";
$headers .='Reply-To: a.ahmed@gmail.com'."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
//$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields

ini_set('sendmail_from', $email); //Suggested by "Some Guy"

$envoi_mail = mail($recipient, $subject, $mail_body, $headers);

if ($envoi_mail)
{ echo "
<center style='color:blue'> L'email a été envoyé avec succès ! </center>" ;
}

else
{ echo "<center> Le mail n'a pas été envoyé car un problème est survenu...</center>" ;
}
}
}
}//fin if
?>

Merci jnbrunet pour ta réponse elle était utile .

A bientot

Merci cs_midoxe 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de cs_midoxe
Messages postés
265
Date d'inscription
samedi 25 décembre 2004
Dernière intervention
13 novembre 2012
0
Merci
Salut !

Je crois que google nécessite une authentification ?

Regarde ce lien : http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

Il utilise le package PEAR pour rendre l'envoie de courriel via SMTP beaucoup plus facile. L'exemple montre même un envoi de courriel avec une authentification.

Bonne chance !

-Jn-
Commenter la réponse de jnbrunet

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.