1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
<?php
//----------------------------------
// Construction de l'ent?te
//----------------------------------
// On choisi g?n?ralement de construire une fronti?re g?n?r?e aleatoirement
// comme suit. (le document pourra ainsi etre attache dans un autre mail
// dans le cas d'un transfert par exemple)
$boundary = "-----=".md5(uniqid(rand()));
// Ici, on construit un ent?te contenant les informations
// minimales requises.
// Version du format MIME utilis?
$header = "MIME-Version: 1.0\r\n";
// Type de contenu. Ici plusieurs parties de type different "multipart/mixed"
// Avec un fronti?re d?finie par $boundary
$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
// REM: 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";
//---------------------------------
// 1?re partie du message
// Le texte
//---------------------------------
// 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, on peut ?crire le texte de la 1?re partie
$nom_personne = $_POST['nom_personne'];
$date_incident = $_POST['date_incident'];
$heure_incident = $_POST['heure_incident'];
$materiel = $_POST['materiel'];
$logiciel = $_POST['logiciel'];
$autre=$_POST['autre'];
$titre_message = $_POST['titre_message'];
$message_st = $_POST['message_st'];
$fichier = $_FILES['fichier']['name'];
//$msg .= "Ceci est un mail avec un fichier joint\r\n";
$msg.= 'Veuillez recevoir la survenance ci-après :'."\r\n\r\n";
$msg .= $message_st."\r\n";
$msg .= 'Détails : '."\r\n\r\n";
$msg .= 'Auteur : '.$nom_personne."\r\n\r\n";
$msg .= 'Date incident : '.$date_incident."\r\n\r\n";
$msg .= 'Heure incident : '.$heure_incident."\r\n\r\n";
$msg .= 'Matériel endommagé : '.$materiel."\r\n\r\n";
$msg .= 'Logiciel : '.$logiciel."\r\n\r\n";
$msg .= 'Autre : '.$autre."\r\n\r\n";
$msg .= "\r\n";
//---------------------------------
// 2nde partie du message
// Le fichier
//---------------------------------
// Tout d'abord lire le contenu du fichier
$file = $_FILES['fichier']['name'];
$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: application/msword; 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:attachment; 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 = "adresse";
$expediteur = $_SESSION['mail'];
$reponse = $expediteur;
//echo "Ce script envoie un mail avec fichier attaché $expediteur";
if (isset($_POST['message_st'])) {
if (mail($destinataire, $titre_message, $msg,
"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header))
{
echo 'message envoyé';
}
else
{
echo "message non envoyé";
//echo $msg;
}
}//bon code*/
?> |
Partager