Section courante

A propos

Section administrative du site

MAIL

Courrier
PHP 4+

Syntaxe

function mail($to,$subject,$message);
function mail($to,$subject,$message,$additional_headers);
function mail($to,$subject,$message,$additional_headers,$additional_parameters);

Paramètres

Nom Description
$to Ce paramètre permet d'indiquer l'adresse de boite de courriel du ou des destinataires :
Format Description
destinataire@domaine.ext Ce format est utilisé pour indiquer un adresse de courriel destinataire.
destinataire1@domaine.ext, destinataire2@domaine.ext Ce format est utilisé pour indiquer deux adresses de courriel destinataire.
Nom <destinataire@domaine.ext> Ce format est utilisé pour indiquer un adresse de courriel destinataire avec son nom.
Nom <destinataire1@domaine.ext>, Nom <destinataire2@domaine.ext> Ce format est utilisé pour indiquer deux adresses de courriel destinataire avec deux noms différents.
... ...
$subject Ce paramètre permet d'indiquer le sujet (titre) du courriel.
$message Ce paramètre permet d'indiquer le corps (message) du courriel.
$additional_headers Ce paramètre permet d'indiquer les données brutes envoyés dans l'entête du courriel. Ces données brutes sont en faites une chaine de caractères dans lequel on retrouve au début de chaque ligne, un champs avec une fonctionnalité particulière :
Champs Description
Bcc: <courriel> Ce champs permet d'indiquer un ou plusieurs courriel d'envoi en copie mais caché au autre.
Cc: <courriel> Ce champs permet d'indiquer un ou plusieurs courriel d'envoi en copie.
Content-type: typemime; charset=ensemblecaractere Ce champs permet d'indiquer le format MIME du corps du message suivit par le jeu de police de caractères. Voici les entêtes «typemime» les plus communs :
Valeur Description
application/acad Cette valeur permet d'indiquer que la page retourner est un fichier AutoCAD
application/applefile Cette valeur permet d'indiquer que la page retourner est un fichier AppleFile
application/astound Cette valeur permet d'indiquer que la page retourner est un fichier Astound
application/clariscad Cette valeur permet d'indiquer que la page retourner est un fichier ClarisCAD
application/csv-tab-delimited-table Cette valeur permet d'indiquer que la page retourner est un fichier de tableur CSV (chiffrier électronique)
application/drafting Cette valeur permet d'indiquer que la page retourner est un fichier MATRA Prelude drafting
application/dsptype Cette valeur permet d'indiquer que la page retourner est un fichier TSP
application/dxf Cette valeur permet d'indiquer que la page retourner est un fichier AutoCAD
application/futuresplash Cette valeur permet d'indiquer que la page retourner est un fichier Flash Futuresplash
application/gzip Cette valeur permet d'indiquer que la page retourner est un fichier GNU Zip
application/hdf Cette valeur permet d'indiquer que la page retourner est un fichier de données
application/i-deas Cette valeur permet d'indiquer que la page retourner est un fichier SDRC I-deas
application/iges Cette valeur permet d'indiquer que la page retourner est un fichier de format d'échange CAO IGES
application/listenup Cette valeur permet d'indiquer que la page retourner est un fichier Listenup
application/mac-binhex40 Cette valeur permet d'indiquer que la page retourner est un fichier binaires Macintosh
application/mbedlet Cette valeur permet d'indiquer que la page retourner est un fichier Mbedlet
application/mif Cette valeur permet d'indiquer que la page retourner est un fichier FrameMaker Interchange Format
application/msexcel Cette valeur permet d'indiquer que la page retourner est un fichier Microsoft Excel
application/mshelp Cette valeur permet d'indiquer que la page retourner est un fichier d'aide Microsoft Windows
application/mspowerpoint Cette valeur permet d'indiquer que la page retourner est un fichier Microsoft Powerpoint
application/msword Cette valeur permet d'indiquer que la page retourner est un fichier Microsoft Word
application/octet-stream Cette valeur permet d'indiquer que la page retourner est un fichier binaires non interprétés
application/oda Cette valeur permet d'indiquer que la page retourner est un fichier ODA
application/pdf Cette valeur permet d'indiquer que la page retourner est un fichier Adobe Acrobat
application/postscript Cette valeur permet d'indiquer que la page retourner est un fichier PostScript
application/pro_eng Cette valeur permet d'indiquer que la page retourner est un fichier ProEngineer
application/rtc Cette valeur permet d'indiquer que la page retourner est un fichier RTC
application/rtf Cette valeur permet d'indiquer que la page retourner est un fichier de format de texte enrichi
application/set Cette valeur permet d'indiquer que la page retourner est un fichier CAO SET
application/sla Cette valeur permet d'indiquer que la page retourner est un fichier stéréolithographie
application/solids Cette valeur permet d'indiquer que la page retourner est un fichier MATRA Solids
application/step Cette valeur permet d'indiquer que la page retourner est un fichier de données STEP
application/studiom Cette valeur permet d'indiquer que la page retourner est un fichier Studiom
application/toolbook Cette valeur permet d'indiquer que la page retourner est un fichier Toolbook
application/vda Cette valeur permet d'indiquer que la page retourner est un fichier de surface
application/vnd.wap.wmlc Cette valeur permet d'indiquer que la page retourner est un fichier WMLC (WAP)
application/vnd.wap.wmlscriptc Cette valeur permet d'indiquer que la page retourner est un fichier script C WML (WAP)
application/vocaltec-media-desc Cette valeur permet d'indiquer que la page retourner est un fichier Vocaltec Mediadesc
application/vocaltec-media-file Cette valeur permet d'indiquer que la page retourner est un fichier Vocaltec Media
application/x-authorware-bin Cette valeur permet d'indiquer que la page retourner est un Macromedia Authorware
application/x-authorware-map Cette valeur permet d'indiquer que la page retourner est un Macromedia Authorware
application/x-authorware-seg Cette valeur permet d'indiquer que la page retourner est un Macromedia Authorware
application/x-bcpio Cette valeur permet d'indiquer que la page retourner est un fichier BCPIO
application/x-bittorrent Cette valeur permet d'indiquer que la page retourner est un Bittorrent
application/x-compress Cette valeur permet d'indiquer que la page retourner est un fichier compressé
application/x-cpio Cette valeur permet d'indiquer que la page retourner est un CPIO binaire
application/x-cpio Cette valeur permet d'indiquer que la page retourner est un CPIO Posix
application/x-csh Cette valeur permet d'indiquer que la page retourner est un Script C-Shell (UNIX)
application/x-director Cette valeur permet d'indiquer que la page retourner est un fichier répertoire
application/x-dvi Cette valeur permet d'indiquer que la page retourner est un fichiers texte dvi
application/x-envoy Cette valeur permet d'indiquer que la page retourner est un fichier Envoy
application/x-gtar Cette valeur permet d'indiquer que la page retourner est un Tar GNU
application/x-httpd-php Cette valeur permet d'indiquer que la page retourner est un fichier script PHP
application/x-javascript Cette valeur permet d'indiquer que la page retourner est un fichier JavaScript côté serveur
application/x-latex Cette valeur permet d'indiquer que la page retourner est un fichier d'application d'un source LaTEX
application/x-macbinary Cette valeur permet d'indiquer que la page retourner est un fichier d'application binaires Macintosh
application/x-mif Cette valeur permet d'indiquer que la page retourner est un fichier d'application Framemaker
application/xml Cette valeur permet d'indiquer que la page retourner est un fichier d'application XML.
application/xml-external-parsed-entity Cette valeur permet d'indiquer que la page retourner est un fichier d'application XML à l'analyse syntaxique externe
application/xml-dtd Cette valeur permet d'indiquer que la page retourner est un fichier d'application XML DTD
application/x-netcdf Cette valeur permet d'indiquer que la page retourner est un fichier netCDF
application/x-nschat Cette valeur permet d'indiquer que la page retourner est un fichier NS Chat
application/x-sh Cette valeur permet d'indiquer que la page retourner est un fichier Bourne Shell
application/x-shar Cette valeur permet d'indiquer que la page retourner est un fichier d'archives Shell
application/x-shockwave-flash Cette valeur permet d'indiquer que la page retourner est un fichier Flash Shockwave
application/x-sprite Cette valeur permet d'indiquer que la page retourner est un fichier Sprite
application/x-stuffit Cette valeur permet d'indiquer que la page retourner est un fichier Stuffit
application/x-supercard Cette valeur permet d'indiquer que la page retourner est un fichier Supercard
application/x-sv4cpio Cette valeur permet d'indiquer que la page retourner est un fichier CPIO SVR4n
application/x-sv4crc Cette valeur permet d'indiquer que la page retourner est un fichier CPIO SVR4 avec CRC
application/x-tar Cette valeur permet d'indiquer que la page retourner est un fichier compressé tar
application/x-tcl Cette valeur permet d'indiquer que la page retourner est un fichier script Tcl
application/x-tex Cette valeur permet d'indiquer que la page retourner est un fichier Tex
application/x-texinfo Cette valeur permet d'indiquer que la page retourner est un fichier eMacs
application/x-troff Cette valeur permet d'indiquer que la page retourner est un fichier Troff
application/x-troff-man Cette valeur permet d'indiquer que la page retourner est un fichier Troff/macro man
application/x-troff-me Cette valeur permet d'indiquer que la page retourner est un fichier Troff/macro ME
application/x-troff-ms Cette valeur permet d'indiquer que la page retourner est un fichier Troff/macro MS
application/x-ustar Cette valeur permet d'indiquer que la page retourner est un fichier compressé tar Posix
application/x-wais-source Cette valeur permet d'indiquer que la page retourner est un fichier Source Wais
application/x-www-form-urlencoded Cette valeur permet d'indiquer que la page retourner est un fichier de données de formulaire HTML à CGI
application/zip Cette valeur permet d'indiquer que la page retourner est un fichier compressé ZIP
audio/basic Cette valeur permet d'indiquer que la page retourner est un fichier audio basiques
audio/echospeech Cette valeur permet d'indiquer que la page retourner est un fichier Echospeed
audio/tsplayer Cette valeur permet d'indiquer que la page retourner est un fichier TS-Player
audio/voxware Cette valeur permet d'indiquer que la page retourner est un fichier Vox
audio/x-aiff Cette valeur permet d'indiquer que la page retourner est un fichier audio AIFF
audio/x-dspeeh Cette valeur permet d'indiquer que la page retourner est un fichier parole
audio/x-midi Cette valeur permet d'indiquer que la page retourner est un fichier MIDI
audio/x-mpeg Cette valeur permet d'indiquer que la page retourner est un fichier MPEG
audio/x-pn-realaudio Cette valeur permet d'indiquer que la page retourner est un fichier RealAudio
audio/x-pn-realaudio-plugin Cette valeur permet d'indiquer que la page retourner est un fichier plugin RealAudio
audio/x-qt-stream Cette valeur permet d'indiquer que la page retourner est un fichier QuickTime Audio
audio/x-wav Cette valeur permet d'indiquer que la page retourner est un fichier audio Wave
drawing/x-dwf Cette valeur permet d'indiquer que la page retourner est un fichier Drawing
image/cis-cod Cette valeur permet d'indiquer que la page retourner est un fichier CIS-Cod
image/fif Cette valeur permet d'indiquer que la page retourner est un fichier FIF
image/gif Cette valeur permet d'indiquer que la page retourner est un fichier d'image gif
image/ief Cette valeur permet d'indiquer que la page retourner est un fichier d'image exchange format
image/jpeg Cette valeur permet d'indiquer que la page retourner est un fichier d'image Jpeg
image/tiff Cette valeur permet d'indiquer que la page retourner est un fichier d'image Tiff
image/vasa Cette valeur permet d'indiquer que la page retourner est un fichier Vasa
image/vnd.wap.wbmp Cette valeur permet d'indiquer que la page retourner est un fichier Bitmap (WAP)
image/x-cmu-raster Cette valeur permet d'indiquer que la page retourner est un fichier Raster cmu
image/x-freehand Cette valeur permet d'indiquer que la page retourner est un fichier Freehand
image/x-portable-anymap Cette valeur permet d'indiquer que la page retourner est un fichier Anymap PBM
image/x-portable-bitmap Cette valeur permet d'indiquer que la page retourner est un fichier Bitmap PBM
image/x-portable-graymap Cette valeur permet d'indiquer que la page retourner est un fichier Graymap PBM
image/x-portable-pixmap Cette valeur permet d'indiquer que la page retourner est un fichier Pixmap PBM
image/x-rgb Cette valeur permet d'indiquer que la page retourner est un fichier d'image RGB
image/x-xbitmap Cette valeur permet d'indiquer que la page retourner est un fichier d'image XBM
image/x-xpixmap Cette valeur permet d'indiquer que la page retourner est un fichier d'image XPM
image/x-xwindowdump Cette valeur permet d'indiquer que la page retourner est un fichier d'image dump X-Windows
message/external-body Cette valeur permet d'indiquer que la page retourner est un fichier de nouvelle avec contenu externe
message/http Cette valeur permet d'indiquer que la page retourner est un fichier de nouvelle à entête HTTP
message/news Cette valeur permet d'indiquer que la page retourner est un fichier de nouvelle de Newsgroup
message/partial Cette valeur permet d'indiquer que la page retourner est un fichier de nouvelle avec contenu partiel
message/rfc822 Cette valeur permet d'indiquer que la page retourner est un fichier de nouvelle d'après RFC 1822
model/vrml Cette valeur permet d'indiquer que la page retourner est un fichier de visualisation de mondes virtuels
multipart/alternative Cette valeur permet d'indiquer que la page retourner est un fichier de données composites mélangées
multipart/byteranges Cette valeur permet d'indiquer que la page retourner est un fichier de données composites avec mentions d'octets
multipart/digest Cette valeur permet d'indiquer que la page retourner est un fichier de données composites / choix
multipart/encrypted Cette valeur permet d'indiquer que la page retourner est un fichier de données composites cryptées
multipart/form-data Cette valeur permet d'indiquer que la page retourner est un fichier de données composites de formulaire HTML
multipart/mixed Cette valeur permet d'indiquer que la page retourner est un fichier de données composites mélangées
multipart/parallel Cette valeur permet d'indiquer que la page retourner est un fichier de données composites parallèles
multipart/related Cette valeur permet d'indiquer que la page retourner est un fichier de données composites / liées
multipart/report Cette valeur permet d'indiquer que la page retourner est un fichier de données composites / rapport
multipart/signed Cette valeur permet d'indiquer que la page retourner est un fichier de données composites / signées
multipart/voice-message Cette valeur permet d'indiquer que la page retourner est un fichier de données composites / message vocal
multipart/x-gzip Cette valeur permet d'indiquer que la page retourner est un fichier d'archive GNU zip
multipart/x-zip Cette valeur permet d'indiquer que la page retourner est un fichier d'archive zip
text/comma-separated-values Cette valeur permet d'indiquer que la page retourner est un fichier de données séparées par des virgules
text/css Cette valeur permet d'indiquer que la page retourner est un fichier de feuilles de style CSS
text/html Cette valeur permet d'indiquer que la page retourner est un fichier HTML
text/javascript Cette valeur permet d'indiquer que la page retourner est un fichier JavaScript
text/plain Cette valeur permet d'indiquer que la page retourner est un fichier texte sans mise en forme
text/richtext Cette valeur permet d'indiquer que la page retourner est un fichier texte enrichis
text/tab-separated-value Cette valeur permet d'indiquer que la page retourner est un fichier texte avec séparation des valeurs
text/vnd.abc Cette valeur permet d'indiquer que la page retourner est un fichier Surge Runtime Environment
text/vnd.wap.wml Cette valeur permet d'indiquer que la page retourner est un fichier WML (WAP)
text/vnd.wap.wmlscript Cette valeur permet d'indiquer que la page retourner est un fichier script WML (WAP)
text/x-setext Cette valeur permet d'indiquer que la page retourner est un fichier texte Struct
text/x-sgml Cette valeur permet d'indiquer que la page retourner est un fichier SGML
text/x-speech Cette valeur permet d'indiquer que la page retourner est un fichier Speech
text/xml Cette valeur permet d'indiquer que la page retourner est un fichier de texte XML
text/xml-external-parsed-entity Cette valeur permet d'indiquer que la page retourner est un fichier XML à l'analyse syntaxique externe
video/animaflex Cette valeur permet d'indiquer que la page retourner est un fichier de vidéos AnimaFlex
video/mpeg Cette valeur permet d'indiquer que la page retourner est un fichier de vidéo MPEG
video/msvideo Cette valeur permet d'indiquer que la page retourner est un fichier de vidéos de Microsoft Windows
video/quicktime Cette valeur permet d'indiquer que la page retourner est un fichier de vidéo QuickTime
video/vnd.vivo Cette valeur permet d'indiquer que la page retourner est un fichier Vivo
video/x-msvideo Cette valeur permet d'indiquer que la page retourner est un fichier Microsoft AVI
video/x-sgi-movie Cette valeur permet d'indiquer que la page retourner est un fichier vidéo MoviePlayer
workbook/formulaone Cette valeur permet d'indiquer que la page retourner est un fichier FormulaOne
x-world/x-3dmf Cette valeur permet d'indiquer que la page retourner est un fichier DMF
x-world/x-vrml Cette valeur permet d'indiquer que la page retourner est un fichier VRML
Le second paramètre (ensemblecaractere) indiquer le jeu de police de caractères qu'aura le corps du corps :
Valeur Description
EBCDIC Cette valeur indique un jeu de police de caractères de Mainframe IBM de 8 bits
EUC-JP Cette valeur indique un jeu de police de caractères Unix étendue pour le Japonais
EUC-KR Cette valeur indique un jeu de police de caractères Unix étendue pour la Corée
HZ-GB2312 Cette valeur indique un jeu de police de caractères pour le Chinois simplifié
ISO-2022-CN Cette valeur indique un jeu de police de caractères Chinois
ISO-8859-1 Cette valeur indique un jeu de police de caractères Latin-1 de l'ouest européen
ISO-8859-2 Cette valeur indique un jeu de police de caractères Latin-2 pour l'Europe
ISO-8859-3 Cette valeur indique un jeu de police de caractères Latin-3 du sud européen
ISO-8859-4 Cette valeur indique un jeu de police de caractères Latin-4 du nord européen
ISO-8859-5 Cette valeur indique un jeu de police de caractères Cyrillic
ISO-8859-6 Cette valeur indique un jeu de police de caractères Arabe
ISO-8859-7 Cette valeur indique un jeu de police de caractères Grecque
ISO-8859-8 Cette valeur indique un jeu de police de caractères Hébreu
ISO-8859-9 Cette valeur indique un jeu de police de caractères Latin-5 ou Turque
ISO-8859-10 Cette valeur indique un jeu de police de caractères Latin-6 ou les langages nordiques
ISO-8859-11 Cette valeur indique un jeu de police de caractères la langue thaïlandaises
ISO-8859-13 Cette valeur indique un jeu de police de caractères Latin-7 ou «Baltic Rim»
ISO-8859-14 Cette valeur indique un jeu de police de caractères Latin-8 ou Celtique
ISO-8859-15 Cette valeur indique un jeu de police de caractères Latin-9
ISO-8859-16 Cette valeur indique un jeu de police de caractères Latin-10 du sud-est européen
SHIFT_JIS Cette valeur indique un jeu de police de caractères pour le Japonais
US-ASCII Cette valeur indique un jeu de police de caractères ASCII américain de 7 bits
UTF-8 Cette valeur indique un jeu de police de caractères Unicode de 8 bits
UTF-16 Cette valeur indique un jeu de police de caractères Unicode de 16 bits
UTF-16BE Cette valeur indique un jeu de police de caractères Unicode de 16 bits d'ordre «big-endian»
UTF-16LE Cette valeur indique un jeu de police de caractères Unicode de 16 bits d'ordre «little-endian»
Windows-1251 Cette valeur indique un jeu de police de caractères Windows pour l'alphabet Cyrillic
Windows-1252 Cette valeur indique un jeu de police de caractères Windows pour l'ouest
Windows-1253 Cette valeur indique un jeu de police de caractères Windows pour le grecque
Windows-1254 Cette valeur indique un jeu de police de caractères Windows pour le turque
Windows-1255 Cette valeur indique un jeu de police de caractères Windows pour l'hébreu
Windows-1256 Cette valeur indique un jeu de police de caractères Windows pour l'arabe
Windows-1257 Cette valeur indique un jeu de police de caractères Windows pour les langages baltiques
Windows-1258 Cette valeur indique un jeu de police de caractères Windows pour les Vietnamien
X-EUC-TW Cette valeur indique un jeu de police de caractères Unix étendue pour le chinois traditionnel
... ...
Content-Transfer-Encoding: format Ce champs permet d'indiquer le format d'encodage du courriel :
Format Description
binary Cette valeur permet d'indiquer que le corps du message a un encodage binaire.
... ...
Disposition-Notification-To: <courriel> Ce champs permet d'indiquer un ou plusieurs courriel en réponse de confirmation de lecture.
From: <courriel> Ce champs permet d'indiquer un ou plusieurs courriel de l'envoyeur.
Reply-To: <courriel> Ce champs permet d'indiquer un ou plusieurs courriel de réponse.
X-Priority: <niveau> Ce champs permet d'indiquer un niveau de priorité entre 1 et 5. Le 1 représente une priorité très élevé.
$additional_parameters Ce paramètre permet d'indiquer les paramètres de bas niveau et de configuration du sendmail_path.

Retour

Valeur Description
FALSE Cette valeur indique que le courriel n'a pas été envoyé.
TRUE Cette valeur indique que le courriel a été envoyer.

Description

Cette fonction permet d'effectuer l'envoi d'un courriel (courrier électronique).

Remarques

Exemples

Voici un exemple montrant formulaire permettant d'envoyer un simple courriel avec un sujet et un message :

  1. <?php
  2. if(isset($_REQUEST["cmdAction"])) switch($_REQUEST["cmdAction"]) {
  3.     case "SendMail":
  4.         if(mail($_REQUEST["email"],str_replace("\\","",$_REQUEST["subject"]),str_replace("\\","",$_REQUEST["message"]))) {
  5.             echo "Courriel envoyé";
  6.         } else {
  7.             echo "Impossible d'envoyé le courriel";
  8.         }
  9.         break;
  10. }
  11. ?>
  12. <form name="currMail">
  13.     <input type="hidden" name="cmdAction" value="SendMail" />
  14.     <table>
  15.         <tr>
  16.             <td>Envoyé à&nbsp:</td>
  17.             <td><input name="email" /></td>
  18.         </tr>
  19.         <tr>
  20.             <td>Sujet&nbsp:</td>
  21.             <td><input name="subject" /></td>
  22.         </tr>
  23.         <tr>
  24.             <td>Message&nbsp:</td>
  25.             <td><textarea name="message" rows="10"></textarea></td>
  26.         </tr>
  27.     </table>
  28.     <input type="submit" value="Envoyer">
  29. </form>

et voici l'apparence du formulaire :

Envoyé à :
Sujet :
Message :

Voici un exemple montrant formulaire permettant d'envoyer un courriel avec un fichier en attachement :

  1. <?php
  2. if(isset($_REQUEST["cmdAction"])) switch($_REQUEST["cmdAction"]) {
  3.     case "SendMail":
  4.         $random_hash = md5(date('r', time())); 
  5.         if($_FILES["attachment1"]['name'] != "")  {
  6.             $FileName       = $_FILES["attachment1"]['name'];
  7.             $Extension         = pathinfo($_FILES["attachment1"]['name'], PATHINFO_EXTENSION); 
  8.             $Handle           = fopen($_FILES["attachment1"]["tmp_name"],"rb");
  9.             $s_array           = fstat($Handle);
  10.             $FileSize         = $s_array["size"];
  11.             $Binary         = chunk_split(base64_encode(fread($Handle,$FileSize)));
  12.             fclose($Handle);
  13.         }
  14.         $mail = "support@gladir.com";
  15.         $maili = $mail;
  16.         $headers = "";
  17.         $headers .= "From: $maili <$maili>\n";
  18.         $headers .= "Date: ".date("r")."\n";
  19.         $headers .= "Message-ID: <".date("YmdHis")."gladir@".$_SERVER['SERVER_NAME'].">\n";
  20.         $headers .= "Subject: $strSujet\n"; 
  21.         $headers .= "Return-Path: $maili <$maili>\n";
  22.         $headers .= "Delivered-to: $maili <$maili>\n";
  23.         $headers .= "MIME-Version: 1.0\n";
  24.         $headers .= "Content-Type: multipart/mixed; boundary=\"HP-mixed-".$random_hash."\"n";
  25.         
  26.         $beginmessage = "--PHP-mixed-".$random_hash."\n".
  27.                             "Content-Type: multipart/alternative; boundary=\"HP-alt-".$random_hash."\"n\n".
  28.                             "--PHP-alt-".$random_hash."\n".
  29.                             "Content-Type: text/html; charset=\"SO-8859-9\"n\n";
  30.         $endmessage =   "\n--PHP-alt-".$random_hash."\n". 
  31.                             "Content-Type: text/plain; charset=\"so-8859-9\"n\n ".
  32.                             str_replace("\\","",$message).
  33.                             "\n".
  34.                            "--PHP-alt-".$random_hash."--\n\n";
  35.         $endmessage .=  "--PHP-mixed-".$random_hash."\n".
  36.                           "Content-Type: ";
  37.         switch(strtoupper($Extension)) {
  38.             case "DOC":
  39.                 $endmessage .= "application/msword";
  40.                 break;
  41.             case "GIF":
  42.                 $endmessage .= "image/gif";
  43.                 break;
  44.             case "JPG":case "JPEG":case "JPE":
  45.                 $endmessage .= "image/jpeg";
  46.                 break;
  47.             case "PDF":
  48.                 $endmessage .= "application/pdf";
  49.                 break;
  50.             case "RTF";
  51.                 $endmessage .= "application/msword";
  52.                 break;
  53.             case "TGZ":
  54.                 $endmessage .= "application/x-compressed";
  55.                 break;
  56.             default:
  57.                 $endmessage .= "application/zip";
  58.                 break;
  59.         }
  60.         $endmessage .= "; name=\".$FileName."\" \n".
  61.                           "Content-Transfer-Encoding: base64 \n".
  62.                           "Content-Disposition: attachment \n\n".
  63.                           $Binary."\n".
  64.                           "--PHP-mixed-".$random_hash."-- \n\n";
  65.         
  66.         $headers .= "X-Sender: $mail <$mail>\n";
  67.         $headers .= "X-Priority: 1\n";
  68.         $headers .= "Importance: High\n";
  69.         $headers .= "X-MSMail-Priority: High\n";
  70.         $headers .= "X-Mailer: Gladir.com Mailler With PHP!\n";
  71.         
  72.         if(mail($_REQUEST["email"],str_replace("\\","",$_REQUEST["subject"]),$beginmessage.str_replace("\\","",$_REQUEST["message"]).$endmessage,$headers)) {
  73.             echo "Courriel envoyé";
  74.         } else {
  75.             echo "Impossible d'envoyé le courriel";
  76.         }
  77.         break;
  78. }
  79. ?>
  80. <form name="currMail" method="post" enctype="multipart/form-data">
  81.     <input type="hidden" name="cmdAction" value="SendMail" />
  82.     <table>
  83.         <tr>
  84.             <td>Envoyé à&nbsp:</td>
  85.             <td><input name="email" /></td>
  86.         </tr>
  87.         <tr>
  88.             <td>Sujet&nbsp:</td>
  89.             <td><input name="subject" /></td>
  90.         </tr>
  91.         <tr>
  92.             <td>Attachement&nbsp:</td>
  93.             <td><input type="file" name="attachment1" /></td>
  94.         </tr>
  95.         <tr>
  96.             <td>Message&nbsp:</td>
  97.             <td><textarea name="message" rows="10"></textarea></td>
  98.         </tr>
  99.         
  100.     </table>
  101.     <input type="submit" value="Envoyer" />
  102. </form>

et voici l'apparence du formulaire :

Envoyé à :
Sujet :
Attachement :
Message :

Références

PHP 4 - Guide du développeur, Edition First Interactive, Blake Schwendiman, 2002, ISBN: 2-84427-283-5, page 556

Dernière mise à jour : Vendredi, le 10 avril 2015