Bonjour,
je vous post ce message car j'ai un souci pour l'envoi de piece jointe avec la fonction mail. Voici mon code:
Code : Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?php if(!$_POST['envoie']){?>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input type="file" name="file" />
<input name="envoie" type="submit" id="envoie" value="Submit" />
</form>
<?php }else{
$dest_fichier = basename($_FILES['file']['name']);
// formatage nom fichier // enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$fichier = file_get_contents($_FILES['file']['tmp_name']);
$email_expediteur='[email protected]';
$email_reply='[email protected]';
$message_texte='Bonjour';
$frontiere = '-----=' . md5(uniqid(mt_rand()));
$headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
$message .= '--'.$frontiere."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";
$message .= 'Content-Type: image/jpeg; name="'.$fichier.'"';
$message .= 'Content-Transfer-Encoding: base64'."\n";
$message .= 'Content-Disposition:attachement; filename="'.$fichier.'"';
$message .= chunk_split(base64_encode(file_get_contents($fichier)))."\n";
if(mail("[email protected]",$sujet,$message,$headers))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé';
}
}?>
</body>
</html>
Voici le message que je recois :
Bonjour
Content-Type: image/jpeg; name="ÿØÿà
Avez vous une solution?
Merci d'avance
Bonjour,
je vous post ce message car j'ai un souci pour l'envoi de piece jointe avec la fonction mail. Voici mon code:
[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?php if(!$_POST['envoie']){?>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input type="file" name="file" />
<input name="envoie" type="submit" id="envoie" value="Submit" />
</form>
<?php }else{
$dest_fichier = basename($_FILES['file']['name']);
// formatage nom fichier // enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$fichier = file_get_contents($_FILES['file']['tmp_name']);
$email_expediteur='
[email protected]';
$email_reply='
[email protected]';
$message_texte='Bonjour';
$frontiere = '-----=' . md5(uniqid(mt_rand()));
$headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
$message .= '--'.$frontiere."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";
$message .= 'Content-Type: image/jpeg; name="'.$fichier.'"';
$message .= 'Content-Transfer-Encoding: base64'."\n";
$message .= 'Content-Disposition:attachement; filename="'.$fichier.'"';
$message .= chunk_split(base64_encode(file_get_contents($fichier)))."\n";
if(mail("
[email protected]",$sujet,$message,$headers))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé';
}
}?>
</body>
</html>
[/code]
Voici le message que je recois :
Bonjour
Content-Type: image/jpeg; name="ÿØÿà
Avez vous une solution?
Merci d'avance