Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Envois de mail avec fichier joint [ Archives / AU SECOURS !!! ] (Titigre)

vendredi 16 juillet 2004 à 16:41:34 | Envois de mail avec fichier joint

Titigre

Coucou,

Voilà je suis en train de faire une appli en php et à un moment je dois envoyer un mail avec un fichier joint (normalement le fichier joint sera en .slk (format SYLK (le RTF d'excel)).j'ai un formulaire avec le destinataire, le sujet, le message, le fichier ... jusque là tout va bien.

Lors du clic sur le bouton envois, j'ai un code qui s'exécute our envoyer le mail et le fichier. jusqu'ici tout va bien :je recois le message, le fichier joint et c'est quand j'essaye d'ouvrir le fichier que je ne peux pas. il me met une erreur comme si mon fichier est corompu.


Le formulaire : (mail.php)


<html>
<body>

<form ENCTYPE="multipart/form-data" action="index.php?page=commande/mail4.php" method="POST">
<table cellpadding="0" cellspacing="0">
<tr bgcolor="#CCCCCC">
<td >De :</td>
<td><input type=text name = "from" size="30"></td>
<td>Fournisseurs : </td>
</tr>
<tr bgcolor="#CCCCCC">
<td>Destinataire : </td>
<td><input type=text name = "to" size="30"></td>
<td><select name="fournisseur">
<? $sql_query = "SELECT * FROM fournisseur ";
$sql_results = mysql_query($sql_query);
while($row = mysql_fetch_array($sql_results))
{?>
<option value="<? echo $row['id_fournisseur'];?>"><? echo ucfirst(strtolower($row['libl']));?></option>
<? } ?>
</select>
</td>
</tr>
<tr bgcolor="#CCCCCC">
<td>Sujet : </td>
<td><input type=text name = "sujet" size="30"></td>
<td></td>
</tr>
<tr bgcolor="#CCCCCC">
<td>Message : </td>
<td><textarea name="message" rows="15" cols="40"></textarea></td>
<td></td>
</tr>
<tr bgcolor="#CCCCCC">
<td>Joindre un fichier : </td>
<td><INPUT TYPE=FILE NAME="monfichier"></td>
<td></td>
</tr>
<tr bgcolor="#CCCCCC">
<td></td>
<td></td>
<td><input type=submit value="envoi"></td>
</tr>
</table>
</form>

</body>
</html>


Le code pour le mail : (mail4.php)

<html>
<body>
<center>
<?
$name_file = $_FILES['monfichier']['name'];
$source=$_FILES['monfichier']['tmp_name'];

move_uploaded_file($source, "./".$name_file);

$extension=get_extension($name_file);
// on essaie de reconnaitre l'extension
switch($extension){
case "gz": $type = "application/x-gzip"; break;
case "tgz": $type = "application/x-gzip"; break;
case "zip": $type = "application/zip"; break;
case "pdf": $type = "application/pdf"; break;
case "png": $type = "image/png"; break;
case "gif": $type = "image/gif"; break;
case "jpg": $type = "image/jpeg"; break;
case "txt": $type = "text/plain"; break;
case "htm": $type = "text/html"; break;
case "html": $type = "text/html"; break;
case "doc": $type = "text/vnd.ms-word"; break;
case "xls": $type= "text/vnd.ms-excel"; break;
case "slk": $type= "text/vnd.ms-excel"; break;
default: $type = "application/octet-stream"; break;
}

function get_extension($filename)
{
$parts = explode('.',$filename);
$last = count($parts) - 1;
$ext = $parts[$last];
return $ext;
}

//----------------------------------
// Construction de l'entête
//----------------------------------

if ((isset($_POST['to'])) && (!empty($_POST['to'])))
{
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

$msg .= "--$boundary\r\n";

$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= $_POST['message'];
$msg .= "\r\n";

if(!empty($name_file))
{
$file = $name_file;
$handle = fopen($_POST['monfichier'], "rb");
if ($handle == false)
{
echo 'fichier non ouvert';
}
else
{
$attachment = fread($handle, filesize($_POST['monfichier']));
fclose($handle);
$attachment = chunk_split(base64_encode($attachment));
/* Genere le code */
$msg .= "--$boundary\r\n";
$msg .= "Content-Type: $type; name=\"$file\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
$msg .= "\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$boundary--\r\n";
}
}

$destinataire = $_POST['to'];
$expediteur = $_POST['from'];
$reponse = $expediteur;
echo "Mail envoyé à $destinataire";
mail($destinataire, $_POST['sujet'], $msg,"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);

}

if(!empty($name_file))
{
unlink($name_file);
}
print("<br>\n");
print("<br><A parent.location.href=\"index.php?page=commande/mail.php\" target=\"principal\"><font size=2>Envoyer un autre mail</font></A>");
?>
</center>
</body>
</html>




Voilà donc si pouvez m'aider vous etes les bienvenus !!!!



Cette discussion est classé dans : fichier, mail, php, joint, envois


Répondre à ce message

Sujets en rapport avec ce message

Upload fichier php [ par alanbraxe31 ] Bonjour à tous!voila j'ai un gros soucis avec la fonction mail en php.je souhaites joindre un fichier à mon mail. A la réception du mail, les fichiers Envois de mail avec piece jointe [ par Titigre ] Voila j'ai récupéré sur le net plusieurs sources pour envoyer un mail avec un fichier joint mais voilà avec moi ca ne fonctionne pas, je reçoit un fic envoi de mail avec fichier joint [ par cupidon2904 ] Bonjour je suis tres novice en php je voudrais savoir si quelqu'un pourrais me donner un exemple de "formulaire avec fichier joint" et m'expliquer son fichier joint a la fonction mail() [ par dave21 ] Salut,Je suis débutant, alors soyez sympa, merci d'avance.Quelqu'un peux t il m'expliquer c à quoi sert l'instruction content-type?Est ce que cette in Fichier joint avec mail() [ par Tilix ] Salut !  Alors voilà, j'ai un fichier dans un dossier de mon FTP (ex : ./dossier/fichier.gz ) Je voudrais l'envoyé par mail SANS passé par un formulai Envois de mail... [ par CyberMen30 ] Je voudrais envoyer un mail a une personne qui aurait entré son adresse d'inscription et, apres vérification, le mail enverrai le mot de passe lier a joindre un fichier en ftp avec php [ par machmacha ] Bonjour a tous,je crée pour la première fois mon premier site web avec php, et je veux l'héberger (j'utilise filezilla) mon problème est comment je pe Pb bizarre mails [ par DMK04 ] Bonjour à tous,J'ai un petit problème, et je ne comprends pas !j'ai un fichier ./include/mail.inc.php qui contient uniquement une fonction mxcl_mail($ Formulaire OK sous FF mais pas sous IE [ par fdlps ] Bjr,Ce php est associé a un fichier swf loader, un swf mail 1, un fichiet HTML et un CSS.j'ai un souci avec mon formulaire il fonctionne sous FF mais php et fichier dbf [ par cdevl32 ] Bonjour,Je devrais ouvrir plusieurs fichiers .dbf  et y effectuer des requêtes afin de les visualiser et les imprimer. Comment dois-je m'y prendre ?Le


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,36 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.