Advertisement
Guest User

Untitled

a guest
Dec 1st, 2017
617
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Auteurs: Louvet Hugo & Marec Alexis
  3. Date de création: 25/11/2017
  4. Date de dernière MAJ: 30/11/2017
  5.  */
  6.  
  7. var mesContacts,mesSMTP,nbSMTP,nbcontacts;
  8. function Contact (pnom,pprenom,padresse) {
  9.   this.nom =pnom;
  10.   this.prenom = pprenom;
  11.   this.adressemail= padresse;
  12. }
  13. /* objet Email qui permet de definir la fonction send*/
  14. Email = { send: function (a, b, c, d, e, f, g) { var h = Math.floor(1e6 * Math.random() + 1), i = "https://smtpjs.com/smtp.aspx?"; i += "From=" + a, i += "&to=" + b, i += "&Subject=" + encodeURIComponent(c), i += "&Body=" + encodeURIComponent(d), void 0 == e.token ? (i += "&Host=" + e, i += "&Username=" + f, i += "&Password=" + g, i += "&Action=Send") : (i += "&SecureToken=" + e.token, i += "&Action=SendFromStored"), i += "&cachebuster=" + h, Email.ajax(i) }, sendWithAttachment: function (a, b, c, d, e, f, g, h) { var i = Math.floor(1e6 * Math.random() + 1), j = "https://smtpjs.com/smtp.aspx?"; j += "From=" + a, j += "&to=" + b, j += "&Subject=" + encodeURIComponent(c), j += "&Body=" + encodeURIComponent(d), j += "&Attachment=" + encodeURIComponent(h), void 0 == e.token ? (j += "&Host=" + e, j += "&Username=" + f, j += "&Password=" + g, j += "&Action=Send") : (j += "&SecureToken=" + e.token, j += "&Action=SendFromStored"), j += "&cachebuster=" + i, Email.ajax(j) }, ajax: function (a) { var b = Email.createCORSRequest("GET", a); b.onload = function () { var a = b.responseText; console.log(a) }, b.send() }, createCORSRequest: function (a, b) { var c = new XMLHttpRequest; return "withCredentials" in c ? c.open(a, b, !0) : "undefined" != typeof XDomainRequest ? (c = new XDomainRequest, c.open(a, b)) : c = null, c } };
  15.  
  16. // correction V1 envoi message
  17. function envoimessageV1() {
  18.    
  19.     // recupere les informations saisies dans le formulaire et permet d envoyer un message
  20.     var select_serveur_smtp=document.getElementById('listeSMTP');
  21.     var serveur_smtp=select_serveur_smtp.options[select_serveur_smtp.selectedIndex].text;
  22.     var expediteur=document.getElementById('Expediteur').value;
  23.     var motpasse=document.getElementById('Motpasse').value;
  24.     var destinataire=document.getElementById('Destinataire').value;
  25.     var objet=document.getElementById('Objet').value;
  26.     var destinataire_copie=document.getElementById('Destinataire_copie').value;
  27.     var destinataire_cache=document.getElementById('Destinataire_cache').value;
  28.     var message=document.getElementById('Message').value;
  29.     var message_resultat;
  30.     /*Email.send("adresse expediteur","adresse destinataire","texte de l objet","texte du message","nom du serveur smtp","adresse expediteur", "mdp expediteur");*/
  31.  
  32.     // verifie le contenu de chaque zone
  33.     if (expediteur=="" || !verifMailV1(expediteur) ){
  34.            message_resultat="expediteur incorrect";
  35.     }
  36.     else {
  37.         if (motpasse=="" ){
  38.             message_resultat="mot de passe incorrect";
  39.         }
  40.         else {
  41.             // un seul destinataire saisi par zone
  42.             if (destinataire=="" || !verifMailV1(destinataire) ){
  43.                 message_resultat="destinataire incorrect";
  44.             }
  45.             else {
  46.                 if ( !verifMailV1(destinataire_copie) ){
  47.                     message_resultat="destinataire en copie incorrect";
  48.                 }
  49.                 else {
  50.                     if (!verifMailV1(destinataire_cache) ){
  51.                         message_resultat="destinataire en copie cache incorrect";
  52.                     }
  53.                     else {
  54.                         if (objet==""  ){
  55.                             message_resultat="objet à renseigner";
  56.                         }
  57.                         else {
  58.                            if (message==""  ){
  59.                                message_resultat="message à renseigner";
  60.                             }
  61.                             else {
  62.                                message_resultat="Envoi de mail à :"+destinataire;
  63.                                Email.send(expediteur,destinataire,objet,message,serveur_smtp,expediteur,motpasse);
  64.                                if (destinataire_copie!=""  ){
  65.                                    message_resultat+=" et en copie à :"+destinataire_copie;
  66.                                    Email.send(expediteur,destinataire_copie,objet,message,serveur_smtp,expediteur,motpasse);
  67.                                 }
  68.                                 if (destinataire_cache!=""  ){
  69.                                     message_resultat+=" et en cache à :"+destinataire_cache;
  70.                                     Email.send(expediteur,destinataire_cache,objet,message,serveur_smtp,expediteur,motpasse);
  71.                                 }
  72.                             }
  73.                         }
  74.                     }
  75.                 }
  76.             }
  77.         }
  78.     }
  79.     alert(message_resultat);
  80. }
  81. function envoimessage() {
  82.    
  83.     // recupere les informations saisies dans le formulaire et permet d envoyer un message
  84.     var select_serveur_smtp=document.getElementById('listeSMTP');
  85.     var serveur_smtp=select_serveur_smtp.options[select_serveur_smtp.selectedIndex].text;
  86.     var expediteur=document.getElementById('Expediteur').value;
  87.     var motpasse=document.getElementById('Motpasse').value;
  88.     var destinataire=document.getElementById('Destinataire').value;
  89.     var objet=document.getElementById('Objet').value;
  90.     var destinataire_copie=document.getElementById('Destinataire_copie').value;
  91.     var destinataire_cache=document.getElementById('Destinataire_cache').value;
  92.     var message=document.getElementById('Message').value;
  93.     var erreur = false;
  94.     var message;
  95.    
  96.     // 3 tableaux des destinataires, de ceux en copie, et de ceux en copie cachée
  97.     var lesdestinataires,lesdestinataires_copie_cache,lesdestinataires_copie;
  98.     lesdestinataires = new Array();
  99.     lesdestinataires_copie_cache = new Array();
  100.     lesdestinataires_copie = new Array();
  101.    
  102.     //Vérification de saisies et gestions d'erreurs
  103.     if(expediteur == "")
  104.     {
  105.         message += "Merci de remplir le champs expéditeur \n";
  106.         erreur = true;
  107.     }
  108.     else
  109.     {
  110.         if(motpasse == "")
  111.         {
  112.             message += "Merci d'indiquer votre mot de passe \n";
  113.             erreur = true;
  114.         }
  115.     }
  116.    
  117.    
  118.    
  119.    
  120.     /*Email.send("adresse expediteur","adresse destinataire","texte de l objet","texte du message","nom du serveur smtp","adresse expediteur", "mdp expediteur");*/
  121.  
  122.    
  123.     //Email.send("xxx@laposte.net","yyy@netcourrier.com","texte de l objet","texte du message","smtp.laposte.net","xxx@laposte.net","mdp");
  124.     // verifie le contenu de chaque zone de saisie
  125.  
  126.     // expression regulière : recherche des separateurs ";"
  127.     var reg=new RegExp("[;]+", "g");
  128.     // enlever le dernier ; de la chaine
  129.     destinataire=destinataire.substr(0, destinataire.length-1);
  130.     // decoupe la chaine en recherchant le separateur ; et met le contenu dans le tableau lesdestinataires
  131.     lesdestinataires=destinataire .split(reg);
  132.     // afficher le contenu du tableau les destinataires afin de vérifier les valeurs
  133.     var i=0;
  134.     while(i<lesdestinataires.length)
  135.     {
  136.         var message;
  137.         message += lesdestinataires[i] + "\n";
  138.         i++;
  139.     }
  140.     alert(message);
  141.  
  142.  
  143.    // envoi de mail aux destinataires
  144.  
  145.     // envoi de mail aux destinataires en copie
  146.  
  147.      // envoi de mail aux destinataires en copie cachée
  148.                        
  149.    
  150. }
  151. function chargerSMTP(){
  152.     var selectSMTP=document.getElementById("listeSMTP");
  153.     var uneOption,nb;
  154.     // construit et crée les options de la liste deroulante
  155.     selectSMTP.options.length = 0;
  156.     for (i = 0; i < nbSMTP; i++) {
  157.         // création option
  158.         uneOption = new Option( mesSMTP.serveurs[i].smtp,i);
  159.         // ajout de l'option en fin de liste
  160.         selectSMTP.options.add(uneOption);
  161.     }
  162. }
  163. function ouvrirFichier(plefichier){
  164. var fichierBrut = new XMLHttpRequest();
  165. var texteComplet,mon_document;
  166. var contenufichier;
  167. // accede au fichier passé en paramètre
  168. fichierBrut.open("GET", plefichier, true); //
  169.  
  170. fichierBrut.onreadystatechange = function (){
  171.     if(fichierBrut.readyState === 4) // verifier que les données du fichier sont accessibles
  172.     {
  173.         // verifier que le transfert du fichier s est bien déroulé
  174.        if(fichierBrut.status === 200 || fichierBrut.status === 0)
  175.         {
  176.            //On peut récupérer puis traiter le texte du fichier
  177.            texteComplet = fichierBrut.responseText;
  178.            alert("texte"+texteComplet);
  179.            //decoupe le texte JSON en utilisant une methode parse
  180.            contenufichier = JSON.parse(texteComplet);
  181.            // recupère les contacts
  182.            if (contenufichier.contacts){
  183.                mesContacts=contenufichier;
  184.                nbcontacts=contenufichier.serveurs.length;
  185.                 for (i=0; i<contenufichier.contacts.length; i++){
  186.                     //alert( mesContacts.contacts[i].nom);  
  187.                    
  188.                 }
  189.             }
  190.             // recupere les serveurs
  191.             if (contenufichier.serveurs){
  192.               mesSMTP=contenufichier;
  193.               nbSMTP=contenufichier.serveurs.length;
  194.                for (i=0; i<contenufichier.serveurs.length; i++){
  195.                    //alert( mesSMTP.serveurs[i].smtp);
  196.                }
  197.                // charge la liste deroulante
  198.                chargerSMTP();
  199.             }
  200.          
  201.         }
  202.     }
  203.  };
  204. fichierBrut.send(null);
  205.  
  206. }
  207.  
  208. function enregistrer_contacts(){
  209.     // enregistrer le tableau des contacts en telechargeant un fichier au format json
  210.     var myString = JSON.stringify(mesContacts);
  211.     alert (myString);
  212.     alert (" Voici le fichier généré, si vous souhaitez garder son contenu \n vous devrez mettre à jour manuellement (copier/coller) le fichier contacts.json");
  213.     document.location="data:text/json;base64,"+btoa(myString);
  214. }
  215. //verifMail pour V1
  216. function verifMailV1(texte)
  217. {
  218.     var ok;
  219.     // verifie dans le cas d'une chaine non vide si le texte est d'un format adresse mail : personnel@nomdomaine.extension
  220.     // autorise plusieurs caractères entre crochets associés avec @ nomdomain (minimum 2 caractères).extension (entre 2 et 4 caractères)
  221.    var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
  222.     if (texte!=""){
  223.         if(!regex.test(texte))
  224.         {
  225.            ok=false;
  226.         }
  227.         else
  228.         {
  229.            ok= true;
  230.         }
  231.     }
  232.     else
  233.     {
  234.        ok= true;
  235.     }
  236.     return ok;
  237. }
  238. function verifzoneMail(ptexte)
  239. {
  240.     var ok;
  241.    // verifie si le texte est au format adresse mail
  242.    if(!verifMail(ptexte))
  243.     {
  244.        ok=false;
  245.     }
  246.     else
  247.     {
  248.        ok= true;
  249.     }
  250.     return ok;
  251. }
  252. function verifMail(ptexte)
  253. {
  254.     var bon;
  255.     var message;
  256.     // verifie dans le cas d'une chaine non vide si le texte est d'un format adresse mail : personnel@nomdomaine.extension
  257.     // autorise plusieurs caractères entre crochets associés avec @ nomdomain (minimum 2 caractères).extension (entre 2 et 4 caractères)
  258.    var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;  
  259.    if(!regex.test(ptexte))
  260.     {
  261.        message ="Erreur, formalisme incorrect : xxx.yyyy@aaaa.com";
  262.        document.getElementById('Under').innerHTML = message;
  263.        Under.style.display = "block";
  264.        Under.style.color = "red";
  265.        bon=false;
  266.     }
  267.     else
  268.     {
  269.       message = "Mail saisi valide : "+ptexte;
  270.       document.getElementById('Under').innerHTML = message;
  271.       Under.style.display = "block";
  272.       Under.style.color = "green";
  273.        bon=true;
  274.     }
  275.     return bon;
  276. }
  277. function Error(etat)
  278. {
  279.     var message;
  280.     switch(etat)
  281.     {
  282.         //Gestion erreur si l'objet est vite
  283.         case 'VerifObjet':
  284.             var objet=document.getElementById('Objet').value;
  285.             if(objet == "")
  286.             {
  287.                 message = "Merci d'indiquer un objet.";
  288.                 document.getElementById('UnderObjet').innerHTML = message;
  289.                 UnderObjet.style.display = "block";
  290.                
  291.             }
  292.         break;
  293.         //Gestion erreur si le message est vite
  294.         case 'VerifMsg':
  295.             var msg=document.getElementById('Message').value;
  296.             if(msg == "")
  297.             {
  298.                 message = "Merci de ne pas laisser le message vide.";
  299.                 document.getElementById('UnderMsg').innerHTML = message;
  300.                 UnderMsg.style.display = "block";
  301.  
  302.             }
  303.         break;
  304.         //Gestion erreur si le mot de passe est vite
  305.         case 'VerifMdp':
  306.             var mdp=document.getElementById('Motpasse').value;
  307.             if(mdp == "")
  308.             {
  309.                 message = "Merci d'indiquer votre mot de passe.";
  310.                 document.getElementById('UnderMdp').innerHTML = message;
  311.                 UnderMdp.style.display = "block";
  312.  
  313.             }
  314.         break;
  315.     }
  316. }
  317. function VerifMoreMail()
  318. {
  319.     var destinataire=document.getElementById('Destinataire').value;
  320.     // expression regulière : recherche des separateurs ";"
  321.     var lesdestinataires = new Array();
  322.     var reg=new RegExp("[;]+", "g");
  323.     var message = "";
  324.     var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
  325.     // enlever le dernier ; de la chaine
  326.     destinataire=destinataire.substr(0, destinataire.length-1);
  327.     // decoupe la chaine en recherchant le separateur ; et met le contenu dans le tableau lesdestinataires
  328.     lesdestinataires=destinataire .split(reg);
  329.     //Gestion erreur si aucune adresse destinataire est renseignée
  330.     if(lesdestinataires[0] == "")
  331.     {
  332.         message = "Merci d'indiquer au moins une adresse mail.";
  333.         alert(message);
  334.     }
  335.     else
  336.     {
  337.         //Verification de la validité des adresses mails dans le tableau
  338.         for(i=0;i<lesdestinataires.length;i++)
  339.         {
  340.             if(!regex.test(lesdestinataires[i]))
  341.             {
  342.                 message ="Erreur, formalisme incorrect : xxx.yyyy@aaaa.com";
  343.                 document.getElementById('UnderDesti').innerHTML = message;
  344.                 UnderDesti.style.display = "block";
  345.                 UnderDesti.style.color = "red";
  346.             }
  347.             else
  348.             {
  349.                 message = "Les adresses mails saisies sont valides";
  350.                 document.getElementById('UnderDesti').innerHTML = message;
  351.                 UnderDesti.style.display = "block";
  352.                 UnderDesti.style.color = "green";
  353.             }
  354.         }
  355.     }    
  356. }
  357. function VerifMoreMail2()
  358. {
  359.     var destinataire=document.getElementById('Destinataire').value;
  360.     // expression regulière : recherche des separateurs ";"
  361.     var lesdestinataires = new Array();
  362.     var reg=new RegExp("[;]+", "g");
  363.     var message = "";
  364.     var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
  365.     // enlever le dernier ; de la chaine
  366.     destinataire=destinataire.substr(0, destinataire.length-1);
  367.     // decoupe la chaine en recherchant le separateur ; et met le contenu dans le tableau lesdestinataires
  368.     lesdestinataires=destinataire .split(reg);
  369.     // afficher le contenu du tableau les destinataires afin de vérifier les valeurs
  370.     if(lesdestinataires[0] == "")
  371.     {
  372.         message = "Merci d'indiquer au moins une adresse mail.";
  373.         alert(message);
  374.     }
  375.     else
  376.     {
  377.         for(i=0;i<lesdestinataires.length;i++)
  378.         {
  379.             if(!regex.test(lesdestinataires[i]))
  380.             {
  381.                 message ="Erreur, formalisme incorrect : xxx.yyyy@aaaa.com";
  382.                 document.getElementById('UnderDesti').innerHTML = message;
  383.                 UnderDesti.style.display = "block";
  384.                 UnderDesti.style.color = "red";
  385.             }
  386.             else
  387.             {
  388.                 message = "Les adresses mails saisies sont valides";
  389.                 document.getElementById('UnderDesti').innerHTML = message;
  390.                 UnderDesti.style.display = "block";
  391.                 UnderDesti.style.color = "green";
  392.             }
  393.         }
  394.     }    
  395. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement