Afficher l'extansionde la pièce jointe , au lieu d'un fichier .tmp
azerto00
Messages postés12Date d'inscriptionjeudi 5 mars 2009StatutMembreDernière intervention 3 octobre 2010
-
18 juil. 2005 à 14:05
azerto00
Messages postés12Date d'inscriptionjeudi 5 mars 2009StatutMembreDernière intervention 3 octobre 2010
-
18 juil. 2005 à 21:47
bonjours, j'ai adopté un code .php quipermet d'ajouter une pièce jointe par mail , mais le problème est que le fichier recu porte l'extension .php et donc je ne sais pas ac quel logicile l'ouvri, je vous donne le code, et si quelqu'un trouve une solution sa serai super sympa ... :
// Il ne faut rien changer ci-dessous si vous désirez que ça marche
// Boundary = Frontière en Anglais
$boundary = "-----=".md5(uniqid(rand()));
// Ici, on construit un entête contenant les informations
// Ici non plus, vous ne devez rien changer
// Version du format MIME utilisé
$header = "MIME-Version: 1.0\r\n";
// Boundary = Frontière en Anglais
$header .= "Content-Type: multipart/mixed; boundary="$boundary"\r\n";
$header .= "\r\n";
//--------------------------------------------------
// Construction du message proprement dit
//--------------------------------------------------
// Pour le cas, où le logiciel de mail du destinataire
// n'est pas capable de lire le format MIME de cette version
// Il est de bon ton de l'en informer
// Ce message n'apparaît pas pour les logiciels sachant lire ce format
$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
// Chaque partie du message est séparé par une frontière
$msg .= "--$boundary\r\n";
// Et pour chaque partie on en indique le type
$msg .= "Content-Type: text/plain; charset="iso-8859-1"\r\n";
// Et comment il sera codé
$msg .= "Content-Transfer-Encoding:8bit\r\n";
// Il est indispensable d'introduire une ligne vide entre l'entête et le texte
$msg .= "\r\n";
// Enfin, vous pouvez écrire votre Message ici
// Je vais vous expliquer comment faire votre description plus bas
$msg .= 'Adresse MAIL de l\'éxpediteur:';
$msg .= "$email";
$msg .= "\r\n";
// Tout d'abord lire le contenu du fichier
$file = "$fic_attache";
$fp = fopen($file, "rb"); // b c'est pour les windowsiens
$attachment = fread($fp, filesize($file));
fclose($fp);
// puis convertir le contenu du fichier en une chaîne de caractère
// certe totalement illisible mais sans caractères exotiques
// et avec des retours à la ligne tout les 76 caractères
// pour être conforme au format RFC 2045
$attachment = chunk_split(base64_encode($attachment));
// Ne pas oublier que chaque partie du message est séparé par une frontière
$msg .= "--$boundary\r\n";
// Et pour chaque partie on en indique le type
$msg .= "Content-Type: image/gif; name="$file"\r\n";
// Et comment il sera codé
$msg .= "Content-Transfer-Encoding: base64\r\n";
// Petit plus pour les fichiers joints
// Il est possible de demander à ce que le fichier
// soit si possible affiché dans le corps du mail
$msg .= "Content-Disposition: inline; filename="$file"\r\n";
// Il est indispensable d'introduire une ligne vide entre l'entête et le texte
$msg .= "\r\n";
// C'est ici que l'on insère le code du fichier lu
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
// voilà, on indique la fin par une nouvelle frontière
$msg .= "--$boundary--\r\n";
$destinataire = "info@st3design.com";
$expediteur = "$name";
$reponse = $expediteur;
echo "Ici, vous mettez le message qui doit être affiché après l'envoie du courriel!";
mail($destinataire, "$subject", $msg,
"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
?>
A voir également:
Afficher l'extansionde la pièce jointe , au lieu d'un fichier .tmp
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 18 juil. 2005 à 20:03
Bah comment ça valable ? php c'est valable...
Si tu veux pouvoir l'ouvrir avec un éditeur de ton choix ce n'est pas
possible, il s'agit de réglages accessibles via les options des
dossiers, onglet "types de fichiers" dans windows.
azerto00
Messages postés12Date d'inscriptionjeudi 5 mars 2009StatutMembreDernière intervention 3 octobre 2010 18 juil. 2005 à 20:21
non tjs pa compris, voial ce script me permet d'avoir un formulaire ou le visiteur peu envoyer une pièce jointe, par exmple il envoi un document word.
quand je recoi le mail , j'ai une pièce jointe du style : sqdqf4fstmssqs.tmp
donc l'extension n'est pas un fichier word (.doc) !
je sais pas comment programmé ceci
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 18 juil. 2005 à 20:38
ah ok, il faut que tu indiques correctement le type du fichier, et il
faut surtout que tu ne passes pas par $_FILES['ton_champ']['tmp_name']
pour donner le nom du fichier, mais par $_FILES['ton_champ']['name']
tout en évitant les caractères spéciaux.
azerto00
Messages postés12Date d'inscriptionjeudi 5 mars 2009StatutMembreDernière intervention 3 octobre 2010 18 juil. 2005 à 21:42
j'ai pas compris par exemple , imaginon que je veu que les fichier word (.doc) soi en extansion .doc , quel code je doi mettre ? et ou le mettre ( par rapport a mon fichier .php ci dessus ?