Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3249 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1969970
begin
Posté le 28-02-2010 à 11:35:18  profilanswer
 

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

mood
Publicité
Posté le 28-02-2010 à 11:35:18  profilanswer
 

n°1969972
d@kn1ko
Posté le 28-02-2010 à 11:56:13  profilanswer
 

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.

n°1969973
begin
Posté le 28-02-2010 à 12:22:54  profilanswer
 

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.

n°1970444
d@kn1ko
Posté le 01-03-2010 à 23:45:49  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
Mail automatique (PHP si possible) depuis données SQL[php] Fonction mail() sous IE8
Le type de la complexité[Perl] Comment envoyer le contenu d'un fichier text par mail
Terme pour appli type Java vs. PHP?[Résolu] Exercice C, structure, type, compilation modulaire
[EXcell] Aide sur insertion code excell dans mailéquivalent à un input type=file, pour récupérer le chemin d'un dossier
tester type de donnéesWarning: mail() [function.mail]: Permission denied: headers injection
Plus de sujets relatifs à : php content type avec mail() pour pièce jointe et ckeditor


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR