[RESOLU] Remplir un mail directement dans la messagerie.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Remplir un mail directement dans la messagerie.

Re: [RESOLU] Remplir un mail directement dans la messagerie.

par wisefun77 » 29 sept. 2022, 15:29

Bonjour,

J'ai trouvé pour que tout soit conforme.

Code : Tout sélectionner

<textarea id="textbox" style="width: 300px; height: 200px;"> To: [email protected] Subject: Demande création de ticket pour REGUL/COMPLEMENT. Content-Type: multipart/mixed; boundary=--boundary_text_string ----boundary_text_string Content-Type: text/html; charset=UTF-8 <html> <head> <body> [b]Ici le tableau [/b] </body> </html> </textarea> </div> <button id="create"> <a download="DemandeTicketRegul.eml" id="downloadlink">Télécharger le mail pour envoyer.</a></button> <script> (function () { var textFile = null, makeTextFile = function (text) { var data = new Blob([text], {type: 'text/plain'}); if (textFile !== null) { window.URL.revokeObjectURL(textFile); } textFile = window.URL.createObjectURL(data); return textFile; }; var create = document.getElementById('create'), textbox = document.getElementById('textbox'); create.addEventListener('click', function () { var link = document.getElementById('downloadlink'); link.href = makeTextFile(textbox.value); link.style.display = 'block'; }, false); })(); </script>
Se sont ses trois lignes importantes pour les accents.

Code : Tout sélectionner

Content-Type: multipart/mixed; boundary=--boundary_text_string ----boundary_text_string Content-Type: text/html; charset=UTF-8
Bon courage à tous.

Re: [RESOLU] Remplir un mail directement dans la messagerie.

par wisefun77 » 29 sept. 2022, 15:05

Bonjour @rthur,
Heureusement ils auront tous Outlook d'installé pour envoyer le mail.
Mais il est vrai que cela affiche le mail avec les accents en code ascii.
De plus il faut un tableau dans le mail et le formulaire en PHP n'envoie pas de tableau( ou alors je n'ai pas trouvé comment faire).
La condition sinequanone, Outlook doit ouvrir le mail avant envoi.
Je vais chercher pour trouver les erreurs d'accents.
Merci beaucoup pour votre implication.

Re: [RESOLU] Remplir un mail directement dans la messagerie.

par @rthur » 29 sept. 2022, 14:33

Par ailleurs, la solution de faire un lien mailto est limité à environ 2000 caractères, donc ça restreint la taille du message que tu veux envoyer et vu ton tableau ça ne semble pas être envisageable.

Je pense que la solution en .eml n'est pas utilisable pour ceux qui utilisent Gmail / Outlook.com ou toute autre solution de mail sans logiciel installé sur son poste.

:arrow: A mon avis, la seule véritable solution perenne est de faire un formulaire avec un envoi classique de mail en PHP

Re: Remplir un mail directement dans la messagerie.

par wisefun77 » 29 sept. 2022, 13:22

Bonjour à tous,
Merci pour vos explications toujours aussi performantes pour moi.
@Spols
une autre solution semble la génération de fichier EML
Je vais passer par cette solution.

Merci à vous tous.

Re: Remplir un mail directement dans la messagerie.

par Spols » 29 sept. 2022, 11:05

Je crois me souvenir que l'on ne peut pas faire de mail au format HTML à partir d'un lien mailto

Une solution serait de mettre le contenu en clipboard et demander à tes utilisateur de faire un ctrl+v sur le mail ouvert par le mailto

une autre solution semble la génération de fichier EML

Re: Remplir un mail directement dans la messagerie.

par @rthur » 29 sept. 2022, 10:56

Avec un envoi en mailto, tu ne peux pas envoyer de mail avec un tableau dedans, tu peux juste envoyer du texte brut (pas de mise en forme)

Source : RFC6068 https://www.rfc-editor.org/rfc/rfc6068
The "body" field value is intended to contain the content for the first text/plain body part of the message.

Re: Remplir un mail directement dans la messagerie.

par wisefun77 » 29 sept. 2022, 10:36

Bonjour Spols,

Merci de ta réponse.
J'ai essayé avec INNERHTML et OuterHTML Mais cela ne fonctionne pas.
Si dessous le message dans Outlook.

Code : Tout sélectionner

<tbody><tr> <td bgcolor="blue" width="30%"><font color="white">Nom et/ou matricule Utilisateur :</font></td><td bgcolor="white">dsfsdf</td> </tr> <tr> <td bgcolor="blue"><font color="white">Type d’intervention (INCIDENT ou DEMANDE) :</font></td><td bgcolor="white">DEMANDE</td> </tr> <tr> <td bgcolor="blue"><font color="white">Groupe d’assignation (assignement group) :</font></td><td bgcolor="white">tertert</td> </tr> <tr> <td bgcolor="blue"><font color="white">Affecté au technicien (Assigned to) :</font></td><td bgcolor="white">fgddfgdgdf</td> </tr> <tr> <td bgcolor="blue"><font color="white">Arbre de Cloture (Work Notes) :</font></td><td bgcolor="white">[ADC_START][SDP][GUICHET][DEMANDE][USER_CMDB_DIF_NON][RDV_NON][RDV_BAL][RSDP_NON][REGUL_OUI][COMMENT/SANS COMMENTAIRE][DEM_PDT_PCF <asset_xxx><tpx_1>][Version_2.02][KEY_29092022103137e89e4da9][ADC_END]</tpx_1></asset_xxx></td> </tr> <tr> <td bgcolor="blue"><font color="white">Explications de l’intervention (close notes) :</font></td><td bgcolor="white">SANS COMMENTAIRE</td> </tr> </tbody>
Merci à toi

Re: Remplir un mail directement dans la messagerie.

par Spols » 29 sept. 2022, 09:19

pour récupèrer le contenu HTML de ta balise textarea, utilise innerHTML plutot que value
document.getElementById('myText').innerHTML

Remplir un mail directement dans la messagerie.

par wisefun77 » 28 sept. 2022, 12:26


Bonjour,

J'aimerai apprendre comment faire pour remplir un mail dans la messagerie, depuis un formulaire en PHP.

La messagerie doit ouvrir un mail et être rempli avec un tableau.

C'est à l'user d'envoyer le mail ou non.

Je suis novice de novice en JS, mais j'ai besoin de progresser.

je sais que l'on peut passer par le html >>> mailto.

Mais le formulaire se trouve sur une page et en cliquant sur le bouton envoyer un mail, cela doit générer un mail directement remplit avec les bonnes infos,
Image

voici un code que j'ai essayé mais le tableau ne se forme pas dans le mail.

le formulaire est remplit et l'user fait envoyer le mail, cela redirige vers cette page, mais il doit encore faire envoyer le mail. et il n'y a aucune forme dans le tableau.

Code : Tout sélectionner

<textarea id="myText"> <table> <tr> <td> Nom et/ou matricule Utilisateur : </td> <td>?PHP print_r($_POST['username']);?></td> </tr> <tr> <td> Type d’intervention (INCIDENT ou DEMANDE) :</td> <?PHP print_r($_POST['username']);?></td> </tr> <tr> <td> Groupe d’assignation (assignement group) :</td> <?PHP print_r($_POST['groupname']);?></td> </tr> <tr> <td> Affecté au technicien (Assigned to) : </td><?PHP print_r($_POST['techname']);?></td> </tr> <tr> <td> Arbre de Cloture (Work Notes) :</td> <?PHP print_r($_POST['balises']);?></td> </tr> <tr> <td> Explications de l’intervention (close notes) : </td><?PHP print_r($_POST['comment']);?></td> </tr> </textarea> </table> <button onclick="sendMail(); return false">Send</button> <script> function sendMail() { var link = "mailto:[email protected]" //+ "[email protected]" + "&subject=" + encodeURIComponent("Demande création de Ticket.") + "&body=" + encodeURIComponent(document.getElementById('myText').value) ; window.location.href = link; // window.open('mailto:[email protected]?subject=subject&body=body'); } </script>
Merci pour votre aide.