Hellooooo !
J'utilise un script permettant aux visiteur d'un site , d'envoyer un mail via un formulaire de contact dans lequel il indique son nom, son adresse email, et son message.
Cela fonctionne comme il faut, mais le message est systématiquement accompagné d'une pièce jointe sans nom et qui est vide.
Pourtant, dans le code, j'ai commenté la partie pièce jointe.
Ci dessous, voici le code que j'utilise :
Code : Tout sélectionner
$nom_expediteur = $_POST['nom'];
$mail_expediteur = $_POST['Mail'];
$message_expediteur = $_POST['message'];
$mail = '[email protected]'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
// $message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_txt = $message_expediteur;
$message_html = "<html><head></head><body>$message_expediteur</body></html>";
//==========
//=====Lecture et mise en forme de la pièce jointe.
// $fichier = fopen("image.jpg", "r");
// $attachement = fread($fichier, filesize("image.jpg"));
// $attachement = chunk_split(base64_encode($attachement));
// fclose($fichier);
//==========
//=====Création de la boundary.
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
//=====Définition du sujet.
$sujet = "Mail de contact";
//=========
//=====Création du header de l'e-mail.
$header = "From: \"$nom_expediteur\"<$mail_expediteur>".$passage_ligne;
$header.= "Reply-to: \"$nom_expediteur\" <$mail_expediteur>".$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-Type: text/plain; charset=\"UTF-8\"".$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-Type: text/html; charset=\"UTF-8\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
//=====On ferme 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.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
Comment puis-je faire pour que ca n'envoie pas de pièce jointe ?
Merki
Couin
Hellooooo !
J'utilise un script permettant aux visiteur d'un site , d'envoyer un mail via un formulaire de contact dans lequel il indique son nom, son adresse email, et son message.
Cela fonctionne comme il faut, mais le message est systématiquement accompagné d'une pièce jointe sans nom et qui est vide.
Pourtant, dans le code, j'ai commenté la partie pièce jointe.
Ci dessous, voici le code que j'utilise :
[code]$nom_expediteur = $_POST['nom'];
$mail_expediteur = $_POST['Mail'];
$message_expediteur = $_POST['message'];
$mail = '
[email protected]'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
// $message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_txt = $message_expediteur;
$message_html = "<html><head></head><body>$message_expediteur</body></html>";
//==========
//=====Lecture et mise en forme de la pièce jointe.
// $fichier = fopen("image.jpg", "r");
// $attachement = fread($fichier, filesize("image.jpg"));
// $attachement = chunk_split(base64_encode($attachement));
// fclose($fichier);
//==========
//=====Création de la boundary.
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
//=====Définition du sujet.
$sujet = "Mail de contact";
//=========
//=====Création du header de l'e-mail.
$header = "From: \"$nom_expediteur\"<$mail_expediteur>".$passage_ligne;
$header.= "Reply-to: \"$nom_expediteur\" <$mail_expediteur>".$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-Type: text/plain; charset=\"UTF-8\"".$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-Type: text/html; charset=\"UTF-8\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
//=====On ferme 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.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);[/code]
Comment puis-je faire pour que ca n'envoie pas de pièce jointe ?
Merki :)
Couin