Fichier joint, par mail()

Fichier joint, par mail() - PHP - Programmation

Marsh Posté le 23-09-2005 à 22:38:41    

Salut !
 
Alors voilà, j'ai un fichier dans un dossier de mon FTP (ex : ./dossier/fichier.gz )
Je voudrais l'envoyé par mail SANS passé par un formulaire, en fichier joint.
 
Vous pouvez m'aider svp ?
Merci
 
Tilix


Message édité par Tilix le 23-09-2005 à 22:47:04
Reply

Marsh Posté le 23-09-2005 à 22:38:41   

Reply

Marsh Posté le 24-09-2005 à 13:25:06    

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 :
  1. /* debut en-têtes du messsage */
  2. MIME-Version: 1.0
  3. Content-Type: multipart/mixed; boundary="==mimepart0001==";
  4. Content-Transfer-Encoding: 7bit
  5. /* fin en-têtes du messsage */
  6. C'est un message MIME, si vous voyez ce texte, il n'y a plus d'espoir pour vous ...
  7. --==mimepart0001==
  8. Content-Type: text/plain; charset="iso-8859-1"
  9. Content-Transfer-Encoding: 7bit
  10. Voici un email text avec un fichier joint, encodé en base64.
  11. /hth
  12. --==mimepart0001==
  13. Content-Type: image/jpeg; name="whatever.jpg";
  14. Content-Transfer-Encoding: base64
  15. Content-Disposition: attachment
  16. <données de la pièce joint encodée en base64>
  17. --==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 :
  1. // format $data using RFC 2045 semantics
  2. $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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed