php content type avec mail() pour pièce jointe et ckeditor

php content type avec mail() pour pièce jointe et ckeditor - PHP - Programmation

Marsh Posté le 28-02-2010 à 11:35:18    

Bonjour,
 
J'essaye actuellement d'intégrer l'éditeur wysiwig à mon formulaire d'envoi de mail.
J'ai un soucis de content type. Pour permettre l'envoi de pièce jointe, j'ai mis "multipart/mixed" pour content-type et dans la balise du formulaire j'ai mis l'attribut : enctype="multipart/form-data".
Tout fonctionne.
 
J'ai ajouté le wysiwyg ckeditor. Et là je reçois le mail mais avec les balises html.
Alors, j'ai enlevé l'attribut enctype="multipart/form-data" et remplacé le content type par text/html. Je reçois le mail sans les balises et bien formaté html mais là je ne reçois plus la pièce jointe.
 
Comment faire pour permettre l'envoi de pièce jointe tout en permettant l'utilisation d'un wysiwyg.
 
Merci.
 
Begin

Reply

Marsh Posté le 28-02-2010 à 11:35:18   

Reply

Marsh Posté le 28-02-2010 à 11:56:13    

begin a écrit :

Bonjour,
 
J'essaye actuellement d'intégrer l'éditeur wysiwig à mon formulaire d'envoi de mail.
J'ai un soucis de content type. Pour permettre l'envoi de pièce jointe, j'ai mis "multipart/mixed" pour content-type et dans la balise du formulaire j'ai mis l'attribut : enctype="multipart/form-data".
Tout fonctionne.
 
J'ai ajouté le wysiwyg ckeditor. Et là je reçois le mail mais avec les balises html.
Alors, j'ai enlevé l'attribut enctype="multipart/form-data" et remplacé le content type par text/html. Je reçois le mail sans les balises et bien formaté html mais là je ne reçois plus la pièce jointe.
 
Comment faire pour permettre l'envoi de pièce jointe tout en permettant l'utilisation d'un wysiwyg.
 
Merci.
 
Begin


 
$headers .= "Content-Type: text/html; charset=\"UTF-8\"\r\n";  
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
 
je mettais ca pour le html.

Reply

Marsh Posté le 28-02-2010 à 12:22:54    

Merci pour cette réponse rapide.
 
Est-ce que tu utilisais cela pour un formulaire avec pièce jointe aussi?
Quand je mets content-type à text/html je ne peux plus envoyer de pièce jointe.

Reply

Marsh Posté le 01-03-2010 à 23:45:49    

begin a écrit :

Merci pour cette réponse rapide.
 
Est-ce que tu utilisais cela pour un formulaire avec pièce jointe aussi?
Quand je mets content-type à text/html je ne peux plus envoyer de pièce jointe.


 
j ai galèré longtemps avec ce problème.
 
j'ai jamais vraiment compris comment ca marchait.
 
j'avais pas testé a l'époque puisque je débutais mais essaye de regarder du coté de swift mailer http://swiftmailer.org/ de sensiolabs la même société qui développe le framework symfony.
 
un code que j'avais utilisé il y a longtemps:
 
a tester :
 

Code :
  1. //----------------------------------
  2.   // Construction de l'entête
  3.   //----------------------------------
  4.   // On choisi généralement de construire une fronti�re générée aleatoirement
  5.   // comme suit. (le document pourra ainsi etre attache dans un autre mail
  6.   // dans le cas d'un transfert par exemple)
  7.   ///$boundary = "-----=".md5(uniqid(rand()));
  8.   // Ici, on construit un ent�te contenant les informations
  9.   // minimales requises.
  10.   // Version du format MIME utilis�
  11.   ///$header = "Reply-to: test <test@test.net>\n";
  12.   ///$header .= "From: test <test@test.net>\n";  
  13.   ///$header .= "Bcc: $mail, $mail\n";
  14.   ///$header .= "MIME-Version: 1.0\n";
  15.   ///$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
  16.   ///$header .= "\n";
  17.   // Type de contenu. Ici plusieurs parties de type different "multipart/mixed"
  18.   // Avec un fronti�re d�finie par $boundary
  19.   //--------------------------------------------------
  20.   // Construction du message proprement dit
  21.   //--------------------------------------------------
  22.   // Pour le cas, ou le logiciel de mail du destinataire
  23.   // n'est pas capable de lire le format MIME de cette version
  24.   // Il est de bon ton de l'en informer
  25.   // REM: Ce message n'apparait pas pour les logiciels sachant lire ce format
  26.   ///$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
  27.   //---------------------------------
  28.   // 1ère partie du message
  29.   // Le texte
  30.   //---------------------------------
  31.   // Chaque partie du message est s�par� par une fronti�re
  32.   //$msg .= "\r\n";
  33.   ///$msg .= "--$boundary\n";
  34.   // Et pour chaque partie on en indique le type
  35.   //$msg .= "Content-Type: text/plain; charset=\"UTF-8\"\r\n";
  36.   // Et comment il sera cod�
  37.   //$msg .= "Content-Transfer-Encoding:8bit\r\n";
  38.   // Il est indispensable d'introduire une ligne vide entre l'ent�te et le texte
  39.   //$msg .= "\r\n";
  40.   ///$msg .= "Content-Type: text/html; charset=\"UTF-8\"\n";
  41.   ///$msg .= "Content-Transfer-Encoding: 8bit\n";
  42.   // Enfin, on peut �crire le texte de la 1�re partie
  43.   ///$msg .= $message;
  44.   ///$msg .= "\n";
  45.   //---------------------------------
  46.   // 2nde partie du message
  47.   // Le fichier
  48.   //---------------------------------
  49.   // Tout d'abord lire le contenu du fichier
  50.   ///$file = "file.pdf";
  51.   ///$fp = fopen($file, "rb" );   // b c'est pour les windowsiens
  52. => rb serveur linux
  53.   ///$attachment = fread($fp, filesize($file));
  54.   ///fclose($fp);
  55.   // puis convertir le contenu du fichier en une cha�ne de caract�re
  56.   // certe totalement illisible mais sans caract�res exotiques
  57.   // et avec des retours à la ligne tout les 76 caract�res
  58.   // pour être conforme au format RFC 2045
  59.   ///$attachment = chunk_split(base64_encode($attachment));
  60.   // Ne pas oublier que chaque partie du message est séparé par une frontière
  61.   ///$msg .= "--$boundary\n";
  62.   // Et pour chaque partie on en indique le type
  63.   ///$msg .= "Content-Type: image/gif; name=\"$file\"\r\n";
  64.   // Et comment il sera codé
  65.   ///$msg .= "Content-Transfer-Encoding: base64\r\n";
  66.   // Petit plus pour les fichiers joints
  67.   // Il est possible de demander � ce que le fichier
  68.   // soit si possible affich� dans le corps du mail
  69.   ///$msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
  70.   // Il est indispensable d'introduire une ligne vide entre l'ent�te et le texte
  71.   ///$msg .= "\r\n";
  72.   // C'est ici que l'on ins�re le code du fichier lu
  73.   ///$msg .= $attachment . "\r\n";
  74.   ///$msg .= "\r\n\r\n";
  75.   //on indique la fin par une nouvelle fronti�re
  76.   ///$msg .= "--$boundary--\r\n";
  77.   ///$destinataire = $mail;
  78.   ///$expediteur   = "expediteur@xxx.fr";
  79.   ///$reponse      = $expediteur;
  80.   //echo "Ce script envoie un mail avec fichier attaché $expediteur";
  81.   //mail($destinataire, "test", $msg,"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);


Message édité par d@kn1ko le 01-03-2010 à 23:48:26
Reply

Sujets relatifs:

Leave a Replay

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