begin process at 2010 03 22 06:29:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Envois de mail avec fichier joint


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Envois de mail avec fichier joint

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ée 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 Problème d'envoie de mail avec mail() [ par Morgz ] Bonjour à tous! Voici mon problème, j'utilise wampserver en local et j'essaye de mettre en place un fichier PHP pour envoyer un simple mail. Malheu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales