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
| function EnvoieEmail()
{
$avecpj = false;
$emailoriginal = "";
$headersbcc = false;
// On récupère l'email original pour envoi de la copie ensuite
if (isset($_POST['Email']))
{
$emailoriginal = $_POST['Email'];
}
//On récupère les informations sur le client
Recuperation_InfosClient(&$licence,&$nom,&$prenom,&$version,&$texte,&$email);
/*if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $email)) // On filtre les serveurs qui présentent des bogues.
{
$passage_ligne = "\r\n";
}
else
{*/
$passage_ligne = "\n";
//}
//Variables pour l'envoi du mail
$adresse = $_POST['Destinataire'];
$objet = $_POST['Objet'];
$destinatairecopie = "";
if (isset($_POST['DestinataireCopie'])){$destinatairecopie = $_POST['DestinataireCopie'];}
$headers = 'From:'.$email.' <'.$email.'>'.$passage_ligne;
$headers .= 'Reply-To:'.$email.$passage_ligne;
// Si destinataires copie renseignés on les ajoute
if ($destinatairecopie != "")
{
$headers .= "Bcc:".$destinatairecopie.$passage_ligne;
}
if (isset($_FILES['Fichier']))
{
$avecpj = true;
$tmp_name=$_FILES['Fichier']['tmp_name'];
$name=$_FILES['Fichier']['name'];
$size=$_FILES['Fichier']['size'];
$type=$_FILES['Fichier']['type'];
$erreur=$_FILES['Fichier']['error'];
$uploadpath="";
move_uploaded_file($tmp_name,$uploadpath.$name);
// Définition de la boundary
$boundary = md5(uniqid(microtime(), TRUE));
// Précision dans le headers qu'il y aura une pièce jointe
$headers .= 'Mime-Version: 1.0'.$passage_ligne;
$headers .= 'Content-Type: multipart/mixed;boundary='.$boundary.$passage_ligne;
$headers .= $passage_ligne;
}
$corps="";
//Constitution du corps : si on gère une pièce jointe on insère une boundary pour délimiter le texte
if ($avecpj)
{
$corps .= '--'.$boundary.$passage_ligne;
$corps .= 'Content-type:text/plain;charset="iso-8859-1"'.$passage_ligne;
$corps .= 'Content-transfer-encoding:8bit'.$passage_ligne.$passage_ligne;
}
$corps .= $texte.$passage_ligne;
//Ici également si on gère une pièce jointe on insère une boundary pour la délimiter
if ($avecpj)
{
//Il est enregistré, on peut maintenant l'ouvrir pour l'encoder et l'ajouter au mail
$handle = fopen($name, 'r');
$size = filesize($name);
$content = fread($handle, $size);
$content = chunk_split(base64_encode($content));
$f = fclose($handle);
$corps .= '--'.$boundary."\r\n";
$corps .= 'Content-type:'.$type.';name='.$uploadpath.$name.$passage_ligne;
$corps .= 'Content-transfer-encoding:base64'.$passage_ligne;
$corps .= 'Content-Disposition: attachment; filename="'.$uploadpath.$name.'"'.$passage_ligne;
$corps .= $passage_ligne.$content.$passage_ligne.$passage_ligne;
$corps .= $passage_ligne.'--'.$boundary.'--'.$passage_ligne;
}
echo ($corps);
//Envoi du mail
Envoi_Mail($adresse,$objet,$corps,$headers,$emailoriginal);
// Envoi de la copie
if ($emailoriginal != "")
{
$objet = "[Copie du mail envoye a ".$adresse."] ".$objet;
Envoi_Mail($emailoriginal,$objet,$corps,$headers,$emailoriginal);
}
//On supprime le fichier du serveur
unlink($name);
} |
Partager