Configurer php.ini fonction mail() en localhost

Résolu
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 - 14 déc. 2007 à 11:37
cs_fecou Messages postés 3 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 19 novembre 2009 - 19 nov. 2009 à 02:01
bonjour

je travaille pour l'instant en local pour tester mes pages
qui créer un espace sécurisé pour mon site
et j'ai une page inscription.php ou l'on rentre son login désiré
son mot de passe et son adresse email
quand on valide cela me repond que l'adresse mail n'est pas valide
donc je pense que c'est mon php.ini qui n'est pas configurer pour envoyer des mail en local
(enfin je pense)

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25



; For Win32 only.
;sendmail_from =
[mailto:me@example.com
me@example.com
]



je l'ai pris dans le dossier apache easyphp

www.creativs.fr

15 réponses

cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
14 déc. 2007 à 12:17
[mail function]
; For Win32 only.
SMTP = le SMTP de ton fournisseur d'acces
smtp_port = 25
; For Win32 only.
;sendmail_from = 
[mailto:me@example.com
ton adress mail
]











Personne ne peut se permettre de juger l'autre....
3
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
14 déc. 2007 à 11:39
Page inscription.php

<?php
//------------------------------------------------------
// Fonction Inscription
// - Attribution d'une id unique
// - Tous les champs doivent être remplis
// - Les deux champs passwords doivent être identiques
// - Les champs ne doivent pas contenir dapostrophe
// - Le login ne doit pas déjà exister
// - Le mail ne doit pas être dans la blackliste
// - Envoi d'un mail avec une adresse de confirmation
//------------------------------------------------------
function inscription()
{
require "connect.inc.php";
$page=$serveur.$_SERVER["PHP_SELF"];
$nom=$_POST["nom"];
$pass=$_POST["pass"];
$pass2=$_POST["pass2"];
$email=$_POST["email"];
$IP=$_SERVER['REMOTE_ADDR'];
$heure=time();



// Attendre quil ny ait pas dautres user avec le même numéro de session.
do
{
$uniqueid=md5(time());
$resultat = mysql_query("SELECT * FROM users WHERE uniqueid='$uniqueid'");
}
while(false!=($ligne = mysql_fetch_array($resultat)));



// Vérification diverses et variées.
if($nom=="" || $pass=="" || $pass2=="" || $email==""){show_form($nom,$pass,$pass2,$email,'Certains champs ne sont pas remplis !');die();}
// Tous les champs doivent être remplis
if($pass!=$pass2){show_form($nom,$pass,$pass2,$email,'Le mot de passe et la confirmation sont différents.');die();}
// Le mot de passe et la confirmation doivent être identiques
if(!(!strrpos($_POST["nom"], "'") && !strrpos($_POST["pass"], "'") && !strrpos($_POST["email"], "'"))){show_form($nom,$pass,$pass2,$email,'Ne pas utiliser de caractères spéciaux');die();}
// Eviter les failles SQL
$resultat = mysql_query("SELECT * FROM users WHERE userid='$nom'");
if(false!=($ligne = mysql_fetch_array ($resultat))){show_form($nom,$pass,$pass2,$email,"Le membre (".$nom.") existe déjà");die();} 
// Si le login est déjà pris
$resultat = mysql_query("SELECT * FROM users WHERE email='$email' AND level='blacklist'");
if(false!=($ligne = mysql_fetch_array ($resultat))){show_form($nom,$pass,$pass2,$email,"L'adresse e-mail (".$email.") est blacklistée. Utilisez une autre adresse mail.");die();}  
// Si le-mail est dans la blacklist



$subject  = "Veuillez confirmer votre inscription";
$headers  = "From:
[mailto:moi@hotmail.com\n
moi@hotmail.com\n
]
";
$message  = "Veuillez confirmer votre inscription\n";
$message .= "Bonjour ".$nom."\n\n";
$message .= "Vous avez reçu ce mail parce que vous ou quelqu'un d'autre utilisant votre adresse mail s'est enregistré sur le site ".$site_name.".\n";
$message .= "Pour valider cet inscription, cliquez sur ce lien :\n ".$page."?code=".$uniqueid."&BL=0 \n";
$message .= "Si vous vous n'êtes pas inscrit sur ".$site_name.", veuillez ignorer ce message et accepter nos excuses.\n";
$message .= "Vous pouvez aussi choisir d'ajouter votre mail à notre blacklist pour ne plus recevoir de mail d'inscription de notre part en cliquant sur ce lien :\n ".$page."?code=".$uniqueid."&BL=1 \n";
$message .= "Votre e-mail a été envoyé de l'IP ".$IP.".\n\n";
$message .= "Cordialement,\n";
$message .= "Le Webmaster";



// Envoi du mail
if(@mail($email, $subject, $message, $headers))
    {
    $query = "INSERT INTO users VALUES ('$nom','$pass','$uniqueid','en_attente','$email','$heure','$IP')";
 // On ajoute le membre à la liste avec le status en attente
    mysql_query($query);
    mysql_close();



    $page_confirmation  = "Merci !

Vous devriez recevoir un e-mail à l'adresse suivante : ".$email.".

";
    $page_confirmation .= "Veuillez confirmer l'inscription en cliquant sur le lien se trouvant sur le mail.

";
    echo $page_confirmation;
    }
else
{
     show_form($nom,$pass,$pass2,$email,"Le mail de confirmation n'a pu être envoyé. Peut-être que l'adresse n'est pas valide. Veuillez contacter le webmaster s'il vous plait.");
}
}



//------------------------------------------------------
// Fonction Formulaire
// - Retourne le formulaire avec les messages derreurs
//------------------------------------------------------
function show_form($nom="",$pass="",$pass2="",$email="",$error="")
{
$page_inscription  = "<form action="".$_SERVER["PHP_SELF"]."" method="post">";
$page_inscription .= "Merci de remplir le formulaire ci-dessous :

";
$page_inscription .= "Login désiré :

";
$page_inscription .= "Mot de passe :

";
$page_inscription .= "Confirmation du mot de passe :</td><td>

";
$page_inscription .= "E-mail :

";
$page_inscription .= "

";
$page_inscription .= "".$error."

";
$page_inscription .= "</form>";
echo $page_inscription;
}



//-------------------------------------------------------------------------------
// Fonction de vérification de l'adresse de confirmation
// - Suppression des utilisateurs nayant pas confirmer avant la durée impartie
// - Extraction de la personne concernée
// - Validation de son enregistrement
// - Si l'on veut être blacklisté, après confirmation on effectue le blacklistage
// - Le webmaster recoit un mail lorsque linscription est validé
//-------------------------------------------------------------------------------
function code_check($code="",$BL="")
{
require "connect.inc.php";





$heure=time();



// On profite de loccasion pour supprimer les users nayant pas confirmé dans la durée impartie
$heure2=$heure-$validite;
mysql_query("DELETE FROM users WHERE heure<$heure2 AND level='en_attente'");



// On extrait la personne qui souhaite valider son inscription
$uniqueid=$code;$resultat mysql_query("SELECT * FROM users WHERE uniqueid'$uniqueid' AND level='en_attente'");
if(false==($ligne = mysql_fetch_array ($resultat)))
{
mysql_close();
$page_validation = "Ce code n'existe pas, est expiré ou à déjà été validé, veuillez remplir à nouveau le formaulaire : [mailto:ne_pas_repondre@free.fr\n
ne_pas_repondre@free.fr\n
]
";
       @mail($adresse_webmaster, $subject, $message, $headers);
      }
  }
  // Si l'utilisateur vient pour être blacklisté, on passe son level de en_attente à blacklist
  // Mais avant une petite confirmation
  if($BL==1)
  {
      $page_validation = "Vous souhaitez ajouter votre adresse mail à notre blackliste. Cliquez ici pour que vous puissiez confirmer.";
  }
  // Si lutilisateur a confirmé qu'il veut être dans la liste noire, on l'y met
  if($BL==2)
  {
      mysql_query("UPDATE users SET level='blacklist' WHERE uniqueid ='$uniqueid' AND level='en_attente'");
      $page_validation = 'Votre e-mail a été blacklisté. Vous ne receverez plus aucun e-mail de notre part.';
  }
  mysql_close();
}
echo "".$page_validation."

";
}
?>


www.creativs.fr
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
14 déc. 2007 à 11:40
et la page validation.php

<html>
<head>
<title>Enregistrement</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="identification.css" />
</head>

<?php
require ("inscription.php");
if (isset($_POST["email"]))
{
  // Verification et envoi du mail de confirmation
  inscription();
}
else if(isset($_GET["code"]))
{
  // Verification du code et blacklistage si besoin
  code_check($_GET["code"],$_GET["BL"]);
}
else
{
  // Formaulaire d'enregistrement
  show_form();
}
?>

</html>

www.creativs.fr
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
14 déc. 2007 à 13:29
ok meme si je veux le faire fonctionné en local?

et l'adresse mail doit etre la meme ou je peux mettre une hotmail ou autre?

www.creativs.fr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
14 déc. 2007 à 13:32
oui en local sa marche et pour les adresse hotmail je ne sais pas essaye car moi j'utilise phpmailer


Personne ne peut se permettre de juger l'autre....
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
14 déc. 2007 à 13:33
ah au fait c'est bien celui que l'on trouve dans le repertoire apache d'easyphp qu'il faut modifier??

www.creativs.fr
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
14 déc. 2007 à 13:34
phpmailer?
cela serai plus simple pour moi ou c'est trop compliqué?

www.creativs.fr
0
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
14 déc. 2007 à 14:13
je trouve phpmailer simple donc si tu ve que je t'explique n'hesite pas..


Personne ne peut se permettre de juger l'autre....
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
14 déc. 2007 à 15:29
ok c'est sympa
il se configure tout seul ou faut mettre la main a la pate?

www.creativs.fr
0
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
14 déc. 2007 à 18:19
pour utiliser phpmailer tu a deux fichier a placé a la racine du site et ensuite a initialiser les parametre via ton code php je serai plus precis ce soir mais essaye de telecharger phpmailer

Personne ne peut se permettre de juger l'autre....
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
14 déc. 2007 à 18:50
c fait déjà


c quel fichier?

www.creativs.fr
0
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
14 déc. 2007 à 20:38
class.phpmailer.php et class.smtp.php tu dois les avoirs...
ensuite dans le code php tu met :
require("class.phpmailer.php");
        $mail = new PHPMailer();
        $mail->IsSMTP(); // set mailer to use SMTP
        $mail->Host = "(le smtp de ton forunisseur d'acces"; // specify main and backup server
        $mail->SMTPAuth = true; // turn on SMTP authentication
        $mail->From = "l'adresse d'ou le mail provient donc ton adresse msn par exemple";
        $mail->FromName = "ton nom";
        $mail->AddAddress('ladresse a ki tu lenvoi');
        $mail->AddReplyTo("l'adresse reply");
        $mail->Subject = "le sujet du mail";
        $mail->Body = "le mail au format html";
        $mail->AltBody = le mail format text brut;
        $mail->Send();
si tu a un soucy n'hesite pas


Personne ne peut se permettre de juger l'autre....
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
17 déc. 2007 à 10:47
merci seb&typh

<?php
//------------------------------------------------------
// Fonction Inscription
// - Attribution d'une id unique
// - Tous les champs doivent être remplis
// - Les deux champs passwords doivent être identiques
// - Les champs ne doivent pas contenir dapostrophe
// - Le login ne doit pas déjà exister
// - Le mail ne doit pas être dans la blackliste
// - Envoi d'un mail avec une adresse de confirmation
//------------------------------------------------------
function inscription()
{
require "connect.inc.php";
$page=$serveur.$_SERVER["PHP_SELF"];
$nom=$_POST["nom"];
$pass=$_POST["pass"];
$pass2=$_POST["pass2"];
$email=$_POST["email"];
$IP=$_SERVER['REMOTE_ADDR'];
$heure=time();



//PHP Mailer
require("class.phpmailer.php");
        $mail = new PHPMailer();
        $mail->IsSMTP(); // set mailer to use SMTP
        $mail->Host = "smtp.wanadoo.fr"; // specify main and backup server
        $mail->SMTPAuth = true; // turn on SMTP authentication
        $mail->From = $headers;
        $mail->FromName = "JP";
        $mail->AddAddress('$email');
        $mail->AddReplyTo("
[mailto:jphilippev@hotmail.com
jphilippev@hotmail.com
]
");
        $mail->Subject = $subject;
        $mail->Body = $message;
        $mail->AltBody = $message;
        $mail->Send();





// Attendre quil ny ait pas dautres user avec le même numéro de session.
do
{
$uniqueid=md5(time());
$resultat = mysql_query("SELECT * FROM users WHERE uniqueid='$uniqueid'");
}
while(false!=($ligne = mysql_fetch_array($resultat)));



// Vérification diverses et variées.
if($nom=="" || $pass=="" || $pass2=="" || $email==""){show_form($nom,$pass,$pass2,$email,'Certains champs ne sont pas remplis !');die();}
// Tous les champs doivent être remplis
if($pass!=$pass2){show_form($nom,$pass,$pass2,$email,'Le mot de passe et la confirmation sont différents.');die();}
// Le mot de passe et la confirmation doivent être identiques
if(!(!strrpos($_POST["nom"], "'") && !strrpos($_POST["pass"], "'") && !strrpos($_POST["email"], "'"))){show_form($nom,$pass,$pass2,$email,'Ne pas utiliser de caractères spéciaux');die();}
// Eviter les failles SQL
$resultat = mysql_query("SELECT * FROM users WHERE userid='$nom'");
if(false!=($ligne = mysql_fetch_array ($resultat))){show_form($nom,$pass,$pass2,$email,"Le membre (".$nom.") existe déjà");die();} 
// Si le login est déjà pris
$resultat = mysql_query("SELECT * FROM users WHERE email='$email' AND level='blacklist'");
if(false!=($ligne = mysql_fetch_array ($resultat))){show_form($nom,$pass,$pass2,$email,"L'adresse e-mail (".$email.") est blacklistée. Utilisez une autre adresse mail.");die();}  
// Si le-mail est dans la blacklist



$subject  = "Veuillez confirmer votre inscription";
$headers  = "From:
[mailto:moi@hotmail.com\n
moi@hotmail.com\n
]
";
$message  = "Veuillez confirmer votre inscription\n";
$message .= "Bonjour ".$nom."\n\n";
$message .= "Vous avez reçu ce mail parce que vous ou quelqu'un d'autre utilisant votre adresse mail s'est enregistré sur le site ".$site_name.".\n";
$message .= "Pour valider cet inscription, cliquez sur ce lien :\n ".$page."?code=".$uniqueid."&BL=0 \n";
$message .= "Si vous vous n'êtes pas inscrit sur ".$site_name.", veuillez ignorer ce message et accepter nos excuses.\n";
$message .= "Vous pouvez aussi choisir d'ajouter votre mail à notre blacklist pour ne plus recevoir de mail d'inscription de notre part en cliquant sur ce lien :\n ".$page."?code=".$uniqueid."&BL=1 \n";
$message .= "Votre e-mail a été envoyé de l'IP ".$IP.".\n\n";
$message .= "Cordialement,\n";
$message .= "Le Webmaster";



// Envoi du mail
if(@mail($email, $subject, $message, $headers))
    {
    $query = "INSERT INTO users VALUES ('$nom','$pass','$uniqueid','en_attente','$email','$heure','$IP')";
 // On ajoute le membre à la liste avec le status en attente
    mysql_query($query);
    mysql_close();



    $page_confirmation  = "Merci !

Vous devriez recevoir un e-mail à l'adresse suivante : ".$email.".

";
    $page_confirmation .= "Veuillez confirmer l'inscription en cliquant sur le lien se trouvant sur le mail.

";
    echo $page_confirmation;
    }
else
{
     show_form($nom,$pass,$pass2,$email,"Le mail de confirmation n'a pu être envoyé. Peut-être que l'adresse n'est pas valide. Veuillez contacter le webmaster s'il vous plait.");
}
}



//------------------------------------------------------
// Fonction Formulaire
// - Retourne le formulaire avec les messages derreurs
//------------------------------------------------------
function show_form($nom="",$pass="",$pass2="",$email="",$error="")
{
$page_inscription  = "<form action="".$_SERVER["PHP_SELF"]."" method="post">";
$page_inscription .= "Merci de remplir le formulaire ci-dessous :

";
$page_inscription .= "Login désiré :

";
$page_inscription .= "Mot de passe :

";
$page_inscription .= "Confirmation du mot de passe :</td><td>

";
$page_inscription .= "E-mail :

";
$page_inscription .= "

";
$page_inscription .= "".$error."

";
$page_inscription .= "</form>";
echo $page_inscription;
}



//-------------------------------------------------------------------------------
// Fonction de vérification de l'adresse de confirmation
// - Suppression des utilisateurs nayant pas confirmer avant la durée impartie
// - Extraction de la personne concernée
// - Validation de son enregistrement
// - Si l'on veut être blacklisté, après confirmation on effectue le blacklistage
// - Le webmaster recoit un mail lorsque linscription est validé
//-------------------------------------------------------------------------------
function code_check($code="",$BL="")
{
require "connect.inc.php";





$heure=time();



// On profite de loccasion pour supprimer les users nayant pas confirmé dans la durée impartie
$heure2=$heure-$validite;
mysql_query("DELETE FROM users WHERE heure<$heure2 AND level='en_attente'");



// On extrait la personne qui souhaite valider son inscription
$uniqueid=$code;$resultat mysql_query("SELECT * FROM users WHERE uniqueid'$uniqueid' AND level='en_attente'");
if(false==($ligne = mysql_fetch_array ($resultat)))
{
mysql_close();
$page_validation = "Ce code n'existe pas, est expiré ou à déjà été validé, veuillez remplir à nouveau le formaulaire : [mailto:ne_pas_repondre@free.fr\n
ne_pas_repondre@free.fr\n
]
";
       @mail($adresse_webmaster, $subject, $message, $headers);
      }
  }
  // Si l'utilisateur vient pour être blacklisté, on passe son level de en_attente à blacklist
  // Mais avant une petite confirmation
  if($BL==1)
  {
      $page_validation = "Vous souhaitez ajouter votre adresse mail à notre blackliste. Cliquez ici pour que vous puissiez confirmer.";
  }
  // Si lutilisateur a confirmé qu'il veut être dans la liste noire, on l'y met
  if($BL==2)
  {
      mysql_query("UPDATE users SET level='blacklist' WHERE uniqueid ='$uniqueid' AND level='en_attente'");
      $page_validation = 'Votre e-mail a été blacklisté. Vous ne receverez plus aucun e-mail de notre part.';
  }
  mysql_close();
}
echo "".$page_validation."

";
}
?>



en fait je sais pas ou placer le petit code que tu m'as donné..
vu que je dois envoyer le formulaire avec les variable qu'il y a dedans
je pense a la fin mais bon je prefere demander

merci

www.creativs.fr
0
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
17 déc. 2007 à 12:05
je pense que tu peux le mettre dans ton if ($mail_controle==1)
require("class.phpmailer.php");
        $mail = new PHPMailer();
        $mail->IsSMTP(); // set mailer to use SMTP
        $mail->Host = "smtp.wanadoo.fr"; // specify main and backup server
        $mail->SMTPAuth = true; // turn on SMTP authentication
        $mail->From = $headers;
        $mail->FromName = "JP";
        $mail->AddAddress('$email');
        $mail->AddReplyTo("[mailto:jphilippev@hotmail.com jphilippev@hotmail.com]");
        $mail->Subject = "Nouvelle inscription sur ".$site_name;
$message="Bonjour,\n\n";
       $message.="Un nouveau membre vient de s'inscrire :\n";
       $message.="Nom : ".$ligne["userid"]."\n";
       $message.="E-Mail : ".$ligne["email"]."\n";
        $mail->Body = $message;
        $mail->AltBody = $message;
        $mail->Send();
je pense que ca devrais fonctionné


Personne ne peut se permettre de juger l'autre....
0
cs_fecou Messages postés 3 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 19 novembre 2009
19 nov. 2009 à 02:01
Bonjour,
je cherche à envoyer un mail par php mailer. L'adresse de laquelle j'envoie est fecoucou@gmail.com et celle à laquelle je reçois est fecoucou@hotmail.com. Voici mon code :

require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "ssl://smtp.gmail.com"; // specify main and backup server
$mail->Port = 587;
$mail->Username = "fecoucou";
$mail->Password = "motdepasse";//caché pour la circonstance
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->From = "fecoucou@gmail.com";
$mail->FromName = "felix";
$mail->AddAddress('fecoucou@hotmail.com');
$mail->Subject = "ça marche ou ça marche pas!";
$mail->Body = "Hi,How are you?";
$mail->AltBody = "Hi,How are you?";
$mail->Send();

La réponse de firefox est la suivante :
SMTP Error: Could not connect to SMTP host.

Y a qqn qu'a une idée ??
Merci ...
0
Rejoignez-nous