IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoi de mail


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut Envoi de mail
    Bonjour,

    J'essaye de faire un formulaire d'envoi de mot de passe en cas de perte.
    Mais j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Notice: Undefined index: MAIL in C:\Program Files (x86)\EasyPHP-5.3.1\www\PHP\pw_backup.php on line 24
     
    Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files (x86)\EasyPHP-5.3.1\www\PHP\pw_backup.php on line 24
    Voici le code de la page.
    J'ai bien modifié PHP.ini pour modifier le champs SMTP pour y mettre celui de mon FAI.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Récupérer son mot de passe</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	</head>
    	<body>
     
    		<?php
    			echo '<p> > Demande de connexion à la base de donnée...</p>';
    				mysql_connect("localhost", "root", "");
    				mysql_select_db("bdd");
    			echo '<p> > Connexion à la base de donnée réussie</p>';
     
    			$requete  = mysql_query("SELECT * FROM info_user WHERE EMAIL='$_POST[mail]'");
    			$resultat = mysql_fetch_array($requete);
     
    			echo $resultat['EMAIL'];
     
    			// Le message qu'on envoit dans le mail
    			$message = "Votre mot de passe est".$resultat['MDP'];
     
    			// Envoi du mail
    			mail($resultat['MAIL'], 'Votre mot de passe', $message); 
    		?>
     
    	</body>
    </html>
    Merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    J'ai modifié le code et j'ai une autre erreur :

    erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Notice: Undefined index: MAIL in C:\Program Files (x86)\EasyPHP-5.3.1\www\PHP\pw_backup.php on line 38
     
    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:\Program Files (x86)\EasyPHP-5.3.1\www\PHP\pw_backup.php on line 38
    Echec de l'envoi du mot de passe
    Nouveau code de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Récupérer son mot de passe</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	</head>
    	<body>
     
    		<?php
    			echo '<p> > Demande de connexion à la base de donnée...</p>';
    				mysql_connect("localhost", "root", "");
    				mysql_select_db("bdd");
    			echo '<p> > Connexion à la base de donnée réussie</p>';
     
    			$requete  = mysql_query("SELECT * FROM info_user WHERE EMAIL='$_POST[mail]'");
    			$resultat = mysql_fetch_array($requete);
     
    			echo $resultat['EMAIL'];
     
    			// Le message qu'on envoit dans le mail
    			$message = "Votre mot de passe est".$resultat['MDP'];
     
    			$destinataire = 'adresse@fai.com';
    			// Pour les champs $expediteur / $copie / $destinataire, séparer par une virgule s'il y a plusieurs adresses
    			$expediteur = 'adresse@fai.com';
    			$copie = 'adresse@fai.com';
    			$copie_cachee = 'adresse@fai.com';
    			$objet = 'Test'; // Objet du message
    			$headers  = 'MIME-Version: 1.0' . "\n"; // Version MIME
    			$headers .= 'Content-type: text/html; charset=ISO-8859-1'."\n"; // l'en-tete Content-type pour le format HTML
    			$headers .= 'Reply-To: '.$expediteur."\n"; // Mail de reponse
    			$headers .= 'From: "Nom_de_expediteur"<'.$expediteur.'>'."\n"; // Expediteur
    			$headers .= 'Delivered-to: '.$destinataire."\n"; // Destinataire
    			$headers .= 'Cc: '.$copie."\n"; // Copie Cc
    			$headers .= 'Bcc: '.$copie_cachee."\n\n"; // Copie cachée Bcc    
     
    			// Envoi du mail
    			if ( mail($resultat['MAIL'], 'Votre mot de passe', $message, $headers) )
    			{
    				echo "Votre mot de passe a été envoyé !";
    			}
     
    			else echo "Echec de l'envoi du mot de passe";
    		?>
     
    	</body>
    </html>
    Par contre pour l'adresse expediteur que suis-je censé mettre ? Je ne peux pas mettre n'importe quoi, parce que je ne vois pas sinon comment il peux envoyer de cette adresse sans connaître le mot de passe... Quelque chose m'echappe.

    Merci d'avance.

  3. #3
    Membre expérimenté Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Par défaut
    Ta machine n'est pas dôtée d'un serveur SMTP. Tu dois alors soit configurer un ou bien tu peux utiliser une des classes qui prennent en charge l'authentification avec les serveurs SMTP comme phpmailer par exemple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi de mail au format html
    Par Mephyston dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/01/2004, 13h29
  2. Envoi de mail au format Rich-Text
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 29/10/2003, 17h27
  3. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 12h22
  4. Outlook ne se ferme pas après un envoi de mail
    Par Joke dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2003, 18h32
  5. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2003, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo