[PHP] Envoi de mail

Fermé
digival Messages postés 193 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 7 novembre 2010 - 5 nov. 2009 à 18:03
digival Messages postés 193 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 7 novembre 2010 - 11 nov. 2009 à 17:48
Bonjour,

Je joint ci-dessous mon script pour que les clients puissent m'envoyer un mail à partir d'un formulaire.

<?php
session_start();
if ( isset($_POST['objet']) ) {$_SESSION['objet'] = $_POST['objet'];}
?>

<?php
$mail_destination = 'mine@hotmail.fr';

if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail_destination))
{ $passage_ligne = "\n"; }
else
{ $passage_ligne = "\n"; }

if ($_POST['objet'] == 'inscription'){$message_txt = ''.$_POST['nom'].' souhaiterait s\'inscrire sur mon site !';}
elseif ($_POST['objet'] == 'password_change'){$message_txt = ''.$_SESSION['nom'].' souhaiterait changer son mot de passe par '.$_POST['mdp_change'].' !<br/>Nom du posteur : '.$_POST['nom'].'';}
elseif ($_POST['objet'] == 'password_oubli'){$message_txt = ''.$_POST['nom'].' souhaiterait que je lui rappelle son mot de passe !';}

if ($_POST['objet'] == 'inscription'){$message_html = ''.$_POST['nom'].' souhaiterait s\'inscrire sur mon site !';}
elseif ($_POST['objet'] == 'password_change'){$message_html = ''.$_SESSION['i_nom'].' souhaiterait changer son mot de passe par '.$_POST['mdp_change'].'!<br/>Nom du posteur : '.$_POST['nom'].'';}
elseif ($_POST['objet'] == 'password_oubli'){$message_html = ''.$_POST['nom'].' souhaiterait que je lui rappelle son mot de passe !';}

if ( isset($_POST['image']) )
{
$fichier = fopen("image.jpg", "r");
$attachement = fread($fichier, filesize("image.jpg"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
}

$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());

$sujet = $_POST['objet'];

$header = "From: \"Mon Site\"<mine@hotmail.fr>".$passage_ligne;
$header.= "Reply-to: \"Mon Site\" <mine@hotmail.fr>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;

// CRÉATION DU MESSAGE
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
// Ajout du message au format texte
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========

$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;

// Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========

// Fermeture de la boundary alternative
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========

$message.= $passage_ligne."--".$boundary.$passage_ligne;

//AJOUT DE LA PIÈCE JOINTE
$message.= "Content-Type: image/jpeg; name=\"image.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"image.jpg\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========

if( $_POST['send'] )
{
// ENVOI DE L'E-MAIL
mail($mail_destination,$sujet,$message,$header);
}
?>

<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Me Contacter !</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="content-language" content="fr" />
<style type="text/css"> [...] </style>
</head>
<body>

<div id="corps">
<h1>Me Contacter</h1>
<!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!-->
<form method="post" action="w.formulaire_contact.php" >

<span class="etape">1. Sélectionne le sujet du message...</span><br/>
<select name="objet">
<option value="inscription" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'inscription') ){ ?> selected="selected" <?php } ?> >t'inscrire et bénéficier des nombreux avantages !</option>
<option value="password_oubli" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'password_oubli') ){ ?> selected="selected" <?php } ?> >se rappeler de son mot de passe ?</option>
<option value="password_change" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'password_change') ){ ?> selected="selected" <?php } ?> >changer ton mot de passe</option>
</select><input type="submit" value="Ok"><br/>
</form>
<br/>

<form method="post" action="w.formulaire_contact.php" enctype="multipart/form-data" >
<span class="etape">2. Remplis les champs suivants :</span><br/>
<label for="nom">prénom et nom :</label> <input type="text" name="nom"/><br />
<label for="mail">adresse mail :</label> <input type="text" name="mail" style="margin-left: 4.5%"/><br />

<?php

if ( isset($_POST['objet']) )
{

if ( $_SESSION['i_nom'] == true )
{
if ($_POST['objet'] == 'password_change')
{ ?>
<label for="mdp_change">mot de passe désiré :</label> <input type="text" name="mdp_change"/><br/>
<?php }

elseif ( $_POST['objet'] == 'inscription' )
{ ?>
<p style="color: red; text-align: center">Tu es déjà identifié avec un mot de passe en tant que membre !</p>
<?php }

elseif ( $_POST['objet'] == 'password_change' )
{ ?>
<p style="color: red; text-align: center">Ton mot de passe ne doit pas comporter de caractères spéciaux (!#$%&'*+-/=?^_`{|}~@.[]).</p>
<?php }
}
elseif
(
$_SESSION['i_nom'] == false
AND
(
$_POST['objet'] == 'password_change'
)
)
{ ?>
<p style="color: red; text-align: center" >Tu dois t'identifier en tant que membre pour pouvoir faire cela !</p>
<?php }

;}
?>

<br/>
<span class="etape">3. Recopie maintenant le code de vérification ci-dessous :</span><br />
<img src="w.captcha.php" alt="captcha" style="margin-left: 2%; border: 1px solid grey" /> <input type="text" name="verif" size="10" maxlength="6" /><br/>
<br/>
<input name="send" type="submit" value="Envoyer !" style="margin-left: 5%"> <label for="send" style="color: blue"> Clique pour valider et envoyer ton message !</label><br/>
</form>
<!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!-->
</div>

</body>
</html>

-> Pourquoi, lorsqu'on clique sur "Envoyer", je reçois bien un message mais sans objet ni contenu ?!
A voir également:

8 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
5 nov. 2009 à 18:07
Ton code est illisible parce que tu ne l'as pas mis entre <code> et </.code> (sans le ".").
0
digival Messages postés 193 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 7 novembre 2010 1
5 nov. 2009 à 18:14
Désolé, je savais pas qu'on pouvait faire ça...

Le revoici :
<?php
session_start();
if ( isset($_POST['objet']) ) {$_SESSION['objet'] = $_POST['objet'];}
?>

<?php
$mail_destination = 'mine@hotmail.fr';

if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail_destination))
{ $passage_ligne = "\n"; }
else
{ $passage_ligne = "\n"; }

if ($_POST['objet'] == 'inscription'){$message_txt = ''.$_POST['nom'].' souhaiterait s\'inscrire sur mon site !';}
elseif ($_POST['objet'] == 'password_change'){$message_txt = ''.$_SESSION['nom'].' souhaiterait changer son mot de passe par '.$_POST['mdp_change'].' !<br/>Nom du posteur : '.$_POST['nom'].'';}
elseif ($_POST['objet'] == 'password_oubli'){$message_txt = ''.$_POST['nom'].' souhaiterait que je lui rappelle son mot de passe !';}

if ($_POST['objet'] == 'inscription'){$message_html = ''.$_POST['nom'].' souhaiterait s\'inscrire sur mon site !';}
elseif ($_POST['objet'] == 'password_change'){$message_html = ''.$_SESSION['i_nom'].' souhaiterait changer son mot de passe par '.$_POST['mdp_change'].'!<br/>Nom du posteur : '.$_POST['nom'].'';}
elseif ($_POST['objet'] == 'password_oubli'){$message_html = ''.$_POST['nom'].' souhaiterait que je lui rappelle son mot de passe !';}

if ( isset($_POST['image']) )
{
$fichier = fopen("image.jpg", "r");
$attachement = fread($fichier, filesize("image.jpg"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
}

$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());

$sujet = $_POST['objet'];

$header = "From: \"Mon Site\"<mine@hotmail.fr>".$passage_ligne;
$header.= "Reply-to: \"Mon Site\" <mine@hotmail.fr>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;

// CRÉATION DU MESSAGE
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
// Ajout du message au format texte
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========

$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;

// Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========

// Fermeture de la boundary alternative
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========

$message.= $passage_ligne."--".$boundary.$passage_ligne;

//AJOUT DE LA PIÈCE JOINTE
$message.= "Content-Type: image/jpeg; name=\"image.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"image.jpg\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========

if( $_POST['send'] )
{
// ENVOI DE L'E-MAIL
mail($mail_destination,$sujet,$message,$header);
}
?>

<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Me Contacter !</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="content-language" content="fr" />
<style type="text/css"> [...] </style>
</head>
<body>

<div id="corps">
<h1>Me Contacter</h1>
<!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!-->
<form method="post" action="w.formulaire_contact.php" >

<span class="etape">1. Sélectionne le sujet du message...</span><br/>
<select name="objet">
<option value="inscription" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'inscription') ){ ?> selected="selected" <?php } ?> >t'inscrire et bénéficier des nombreux avantages !</option>
<option value="password_oubli" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'password_oubli') ){ ?> selected="selected" <?php } ?> >se rappeler de son mot de passe ?</option>
<option value="password_change" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'password_change') ){ ?> selected="selected" <?php } ?> >changer ton mot de passe</option>
</select><input type="submit" value="Ok"><br/>
</form>
<br/>

<form method="post" action="w.formulaire_contact.php" enctype="multipart/form-data" >
<span class="etape">2. Remplis les champs suivants :</span><br/>
<label for="nom">prénom et nom :</label> <input type="text" name="nom"/><br />
<label for="mail">adresse mail :</label> <input type="text" name="mail" style="margin-left: 4.5%"/><br />

<?php

if ( isset($_POST['objet']) )
{

if ( $_SESSION['i_nom'] == true )
{
if ($_POST['objet'] == 'password_change')
{ ?>
<label for="mdp_change">mot de passe désiré :</label> <input type="text" name="mdp_change"/><br/>
<?php }

elseif ( $_POST['objet'] == 'inscription' )
{ ?>
<p style="color: red; text-align: center">Tu es déjà identifié avec un mot de passe en tant que membre !</p>
<?php }

elseif ( $_POST['objet'] == 'password_change' )
{ ?>
<p style="color: red; text-align: center">Ton mot de passe ne doit pas comporter de caractères spéciaux (!#$%&'*+-/=?^_`{|}~@.[]).</p>
<?php }
}
elseif
(
$_SESSION['i_nom'] == false
AND
(
$_POST['objet'] == 'password_change'
)
)
{ ?>
<p style="color: red; text-align: center" >Tu dois t'identifier en tant que membre pour pouvoir faire cela !</p>
<?php }

;}
?>

<br/>
<span class="etape">3. Recopie maintenant le code de vérification ci-dessous :</span><br />
<img src="w.captcha.php" alt="captcha" style="margin-left: 2%; border: 1px solid grey" /> <input type="text" name="verif" size="10" maxlength="6" /><br/>
<br/>
<input name="send" type="submit" value="Envoyer !" style="margin-left: 5%"> <label for="send" style="color: blue"> Clique pour valider et envoyer ton message !</label><br/>
</form>
<!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!-->
</div>

</body>
</html> 
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
5 nov. 2009 à 18:16
Non, ne refait pas un copier/coller de ce que tu as déjà mis sur CCM : les espaces n'y sont plus, ça rends ton code illisible.
Repostes ton code en faisant un copier/coller depuis ton fichier .php
0
digival Messages postés 193 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 7 novembre 2010 1
5 nov. 2009 à 18:28
Ok ok, le re-revoici (=_=') ^^ :

<?php
session_start();
if ( isset($_POST['objet']) ) {$_SESSION['objet'] = $_POST['objet'];}
?>

<?php
$mail_destination = 'mine@hotmail.fr'; 

 if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail_destination))
 { $passage_ligne = "\n"; }
 else
 { $passage_ligne = "\n"; }
 
 if ($_POST['objet'] == 'inscription'){$message_txt = ''.$_POST['nom'].' souhaiterait s\'inscrire sur mon site !';}
 elseif ($_POST['objet'] == 'password_change'){$message_txt = ''.$_SESSION['nom'].' souhaiterait changer son mot de passe par '.$_POST['mdp_change'].' !<br/>Nom du posteur : '.$_POST['nom'].'';}
 elseif ($_POST['objet'] == 'password_oubli'){$message_txt = ''.$_POST['nom'].' souhaiterait que je lui rappelle son mot de passe !';}

 if ($_POST['objet'] == 'inscription'){$message_html = ''.$_POST['nom'].' souhaiterait s\'inscrire sur mon site !';}
 elseif ($_POST['objet'] == 'password_change'){$message_html = ''.$_SESSION['i_nom'].'  souhaiterait changer son mot de passe par '.$_POST['mdp_change'].'!<br/>Nom du posteur : '.$_POST['nom'].'';}
 elseif ($_POST['objet'] == 'password_oubli'){$message_html = ''.$_POST['nom'].' souhaiterait que je lui rappelle son mot de passe !';}

if ( isset($_POST['image']) )
{
$fichier   = fopen("image.jpg", "r");
$attachement = fread($fichier, filesize("image.jpg"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
}

$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());

$sujet = $_POST['objet'];

$header = "From: \"Mon Site\"<valen7in@hotmail.fr>".$passage_ligne;
$header.= "Reply-to: \"Mon Site\" <valen7in@hotmail.fr>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;

// CRÉATION DU MESSAGE
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
// Ajout du message au format texte
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
 
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
 
// Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
 
// Fermeture de la boundary alternative
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========
 
$message.= $passage_ligne."--".$boundary.$passage_ligne;

//AJOUT DE LA PIÈCE JOINTE
$message.= "Content-Type: image/jpeg; name=\"image.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"image.jpg\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne; 
//========== 

if( $_POST['send'] )
{
// ENVOI DE L'E-MAIL
mail($mail_destination,$sujet,$message,$header);
} 
?>
<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Me Contacter !</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="content-language" content="fr" />
<style type="text/css"> [...] </style>
</head>
<body>

<div id="corps">
<!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!-->
<form method="post" action="w.formulaire_contact.php" >

<span class="etape">1. Sélectionne le sujet du message...</span><br/>
<select name="objet">
<option value="inscription" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'inscription') ){ ?> selected="selected" <?php } ?> >t'inscrire et bénéficier des nombreux avantages !</option>
<option value="password_oubli" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'password_oubli') ){ ?> selected="selected" <?php } ?> >se rappeler de son mot de passe ?</option>
<option value="password_change" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'password_change') ){ ?> selected="selected" <?php } ?> >changer ton mot de passe</option>
</select><input type="submit" value="Ok"><br/>
</form>
<br/>

<form method="post" action="w.formulaire_contact.php" enctype="multipart/form-data" >
<span class="etape">2. Remplis les champs suivants :</span><br/>
<label for="nom">prénom et nom :</label> <input type="text" name="nom"/><br />
<label for="mail">adresse mail :</label> <input type="text" name="mail" style="margin-left: 4.5%"/><br />

<?php 
if ( isset($_POST['objet']) )
{  

 if ( $_SESSION['i_nom'] == true )
 {
  if ($_POST['objet'] == 'password_change')
  { ?> 
   <label for="mdp_change">mot de passe désiré :</label> <input type="text" name="mdp_change" /><br/>
  <?php }
 
 elseif 
 ( 
 $_SESSION['i_nom'] == false 
 AND 
  (
     $_POST['objet'] == 'password_change' 
  ) 
 )
 { ?>
   <p style="color: red; text-align: center" >Tu dois t'identifier en tant que membre pour pouvoir faire cela !</p>
  <?php }

;}
?>

<br/>
<span class="etape">3. Recopie maintenant le code de vérification ci-dessous :</span><br />
<img src="w.captcha.php" alt="captcha" style="margin-left: 2%; border: 1px solid grey" /> <input type="text" name="verif" size="10" maxlength="6" /><br/>
<br/>
<input name="send" type="submit" value="Envoyer !" style="margin-left: 5%"> 
<label for="send" style="color: blue"> Clique pour valider et envoyer ton message !</label><br/>
</form>
<!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!--><!-->
</div>

</body>
</html>


Je répète ma question :
-> Pourquoi, lorsqu'on clique sur "Envoyer", je reçois bien un message mais sans objet ni contenu ?!
0

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

Posez votre question
digival Messages postés 193 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 7 novembre 2010 1
6 nov. 2009 à 11:48
- back'up ! -
0
digival Messages postés 193 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 7 novembre 2010 1
7 nov. 2009 à 14:31
- back'up ! -
0
digival Messages postés 193 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 7 novembre 2010 1
8 nov. 2009 à 17:47
et comme jamais 2 sans 3 ...
0
digival Messages postés 193 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 7 novembre 2010 1
11 nov. 2009 à 17:48
... back'up !
0