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

cs_midoxe 98 Messages postés samedi 25 septembre 2010Date d'inscription 17 janvier 2012 Dernière intervention - 14 sept. 2011 à 02:32 - Dernière réponse : cs_midoxe 98 Messages postés samedi 25 septembre 2010Date d'inscription 17 janvier 2012 Dernière intervention
- 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
cs_midoxe 98 Messages postés samedi 25 septembre 2010Date d'inscription 17 janvier 2012 Dernière intervention - 14 sept. 2011 à 12:05
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_midoxe
jnbrunet 265 Messages postés samedi 25 décembre 2004Date d'inscription 13 novembre 2012 Dernière intervention - 14 sept. 2011 à 03:21
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.