MIME est la solution ... Multipart Internet Message Extensions
Le principe est de découper le corps du message en morceaux MIME avec chacun leur encodages et leur propriétés, identifiés par les "boundaries" MIME. À partir de là, le client mail fera la distinction des morceaux en fonction de ses capacités à les interpréter : par exemple dans un mail avec un contenu "text/plain" et un en "text/html", si le client ne sait pas interpereter le "html", il affichera le "text".
Je vais la faire par l'exemple, ce sera plus rapide
Code :
- /* debut en-têtes du messsage */
- MIME-Version: 1.0
- Content-Type: multipart/mixed; boundary="==mimepart0001==";
- Content-Transfer-Encoding: 7bit
- /* fin en-têtes du messsage */
- C'est un message MIME, si vous voyez ce texte, il n'y a plus d'espoir pour vous ...
- --==mimepart0001==
- Content-Type: text/plain; charset="iso-8859-1"
- Content-Transfer-Encoding: 7bit
- Voici un email text avec un fichier joint, encodé en base64.
- /hth
- --==mimepart0001==
- Content-Type: image/jpeg; name="whatever.jpg";
- Content-Transfer-Encoding: base64
- Content-Disposition: attachment
- <données de la pièce joint encodée en base64>
- --==mimepart0001==--
|
voilà pour le principe, donc tu vas devoir te familiariser avec :
- le "format" MIME
http://www.ietf.org/rfc/rfc2045.txt
http://www.ietf.org/rfc/rfc2046.txt
- l'encodage en base64 d'un fichier joint :
Code :
- // format $data using RFC 2045 semantics
- $new_string = chunk_split(base64_encode($data));
|
en plus ... et comme d'hab rtfm
http://php.net/mail
http://php.net/manual/en/function.chunk-split.php
http://www.zend.com/zend/spotlight [...] lpart1.php
a+
shakpana