envoi d'un mail avec pièce jointe - développement application tablette

envoi d'un mail avec pièce jointe - développement application tablette - HTML/CSS - Programmation

Marsh Posté le 17-02-2014 à 09:11:28    

Bonjour à tous,
 
Je travaille sur un projet au travail qui consiste à développer une application sur tablette (multi OS).
 
Pour ce faire nous développons le code en HTML5/CSS/JS.
 
Cette application récupère les infos d'un coeur (serveur) qui sont transférées sur la tablette (partie IHM).
 
Nous voulons récupérer ces infos sur la tablette puis à l'aide d'un click sur un bouton mail, générer un texte qui utilise les infos récupérées du serveur (ça, on sait faire), mais aussi mettre en pièce jointe du mail le fichier récupéré du serveur.
 
Le problème c'est que pour joindre un fichier, tout ce que j'ai lu là dessus me dit qu'il me faut un langage serveur i.e. le JS est insuffisant ici. Donc faudrait-il passer par du php?
Cependant, nous développons nos applications avec Worklight 5.0.5 et je n'ai trouvé aucune info quant à la compatibilité WL/php...
Avez-vous des infos supplémentaires à me donner?
 
J'ai aussi lu qu'on pouvait utiliser la bibliothèque jQuery, en loadant une page php en arrière plan qui enverrait le mail.. mais toujours cette histoire de compatibilité php/WL...
 
Une autre solution proposée est d'utiliser la librairie Cordova embarquée par WL et qui permet d'adresser des fonctionnalités de la tablette...
Auriez-vous quelques infos là-dessus aussi, des conseils ou des liens bien expliqués? Pour l'instant cette bibliothèque ne semble pas compatible quant aux versions de WL, de Cordova, et ne se développe pas sur Win8. Cependant, peut-être que j'ai raté un détail.
 
Si jamais vous avez une autre idée pour envoyer un mail via ce genre d'application tablette?
 
PS : je suis simplement stagiaire donc ma maîtrise de tous ces aspects là n'est pas optimum, je serai très reconnaissante de n'importe quelle aide !
 
Très cordialement.

Reply

Marsh Posté le 17-02-2014 à 09:11:28   

Reply

Marsh Posté le 17-02-2014 à 17:01:23    

Je comprends pas tout dans ton architecture :/
Si t'es sur des technos web type HTML5/js et que t'as un serveur, où est le pb de mettre du PHP sur ce serveur :??:
Et que vient faire Worklight dans tout ça ? En regardant sur Wikipedia, j'ai vu que c'était un serveur reposant sur websphere (si tu parles bien du composant "server" de Worklight). Donc, c'est du java : du coup, pas besoin de php, tu l'as ton langage côté serveur...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-02-2014 à 10:31:18    

Pardon j'ai peut être pas été très claire...
 
On développe le code en HTML5/CSS/JS pour cette application via Eclipse et on utilise Worklight car c'est ce qui nous permet d'arriver à une application multi OS.
 
Mon projet se compose d'une partie serveur et une partie IHM. Mon but est d'envoyer après les données à un serveur tiers qui appartiendra probablement au client (sorte de BDD).
 
J'ai tout un code concernant le serveur, tout un code concernant l'IHM (tablette).
 
Je veux coder une fonction mail comme décrite ci-dessus.  
- est-ce que le multi OS va marcher avec WL si j'ai du php dans le code?
- je connais pas encore le serveur qui servira de BDD et auquel je veux envoyer mes fichiers. Où dois-je coder la fonctionnalité mail dans mon code? l'IHM? (question probablement très bête)
 
 
 
Est-ce

Reply

Marsh Posté le 18-02-2014 à 10:53:37    

Ben pourquoi tu veux faire du PHP si t'as déjà un langage côté serveur (apparemment du java ou un truc qui y ressemble) :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-02-2014 à 10:58:55    

On m'a dit "fais ça sous Eclipse en JS/HTML5/CSS sachant qu'on veut que ça marche avec WL".  
 
Mais si tu veux on peut partir du fait que ma connaissance autour de Worklight est nulle et que je suis pas une pro des relations serveur-client...

Reply

Marsh Posté le 18-02-2014 à 11:19:51    

Bref, tout ça pour dire que ma question est : j'ai mon code qui correspond à mon application tablette codée en HTML5/CSS/JS. Comment je peux faire pour envoyer un mail avec pj vu que ça nécessite un langage serveur ?

Reply

Marsh Posté le 18-02-2014 à 11:20:47    

Eclipse, c'est un IDE, donc rien à voir avec la choucroute. Un simple éditeur de texte pourrait te suffire.
Ton WL, c'est quel composant que t'as : le studio, le server ou l'application center ? Si c'est que le studio qui s'intègre dans Eclipse, soit tu rajoute le composant WL server côté serveur soit tu fais du php côté serveur. Comme j'ai compris que ton IHM est en HTML5, c'est pas un soucis...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-02-2014 à 11:41:00    

Oui je sais que Eclipse est un IDE c'était juste une précision en l'air.
 
Justement j'ai que le WL studio et runtime components (le shell quoi). Le WL console a été désactivé (par je ne sais quel moyen car il nous intéresse pas). Quant au WL server, mon manager m'a dit qu'on ne l'utilisait pas et qu'on ne voulait pas l'utiliser.
 
Je comprends pas ce que tu veux dire par "soit tu fais du php côté serveur". C'est justement ça que j'ai du mal à voir dans le sens où si jamais j'ai à intégrer du php, je sais pas où le faire et si c'est possible de le faire.
Le code que j'ai c'est que la partie client et mon langage est un langage client. C'est de quoi que tu parles quand tu dis "côté serveur" concrètement?

Reply

Marsh Posté le 18-02-2014 à 11:50:25    

Php est un langage côté serveur tandis que HTML/JS c'est côté client. Pour envoyer un mail à partir d'une bdd tu es obligé d'utiliser un langage côté serveur.

Reply

Marsh Posté le 18-02-2014 à 11:57:33    

côté serveur, il te faut un Wamp (apache, php, mysql...). Dans le répertoire /www/, tu mettras tes php. Dans ton html, dans tes <form> tu mettra comme url dans l'attribut "action", celle d'un script php. Dans l'attribut "method", tu mettras plutôt "POST". Du coup, dans ton script php, pour récupérer ce qui vient de ton formulaire, tu feras du genre $Variable = $_POST['NomChampForm'];
 
Pour l'upload d'un fichier via un <form>, dasn method, faudra mettre "multipart/form-data".


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-02-2014 à 11:57:33   

Reply

Marsh Posté le 18-02-2014 à 13:25:07    

D'accord donc quand tu disais que j'ai déjà un langage côté serveur, je ne l'ai pas en fait on est d'accord?
 
Moi j'ai un seul .html qui fait globalement la mise en place de mon IHM (disons ça grossièrement) et tout plein de fichiers .js qui eux font les liens entre tout ce que je peux faire sur mon interface ET les liens avec mon premier serveur initial (pas le serveur tiers).
 

Code :
  1. <div id="ExportDialog" data-dojo-type="dojox.mobile.SimpleDialog">
  2.   <div id="ExportDialogHeader" class="DialogHeader">
  3.    <div id="ExportDialogTitle" class="DialogTitle">EXPORT OPTIONS</div>
  4.    <div id="ExportDialogCloseButton" class="FailureDialogCloseButton"
  5.      data-dojo-type="dojox.mobile.Button" onclick="dijit.registry.byId('clickLayer').domNode.style.display = '';dijit.registry.byId('ExportDialog').hide();"></div>
  6.          </div>
  7.   <div class="DialButtons">
  8.    <ul class="AMM" id="MailBtId" data-dojo-type="dojox.mobile.TabBar" fixed="bottom" data-dojo-props="barType:'tabBar'" >
  9.     <li data-dojo-type="dojox.mobile.TabBarButton" onclick="sendMail();dijit.registry.byId('ExportDialog').hide();">
  10.      <img class="FolderIcon" alt="Folder" src="images/mail.PNG">
  11.      <div class="ButtonName" >Mail</div>
  12.     </li>
  13.    </ul>
  14.   </div></div>


 
Donc la gestion du click sur le bouton mail va être gérée par dojo et les fonctions propres au mail sont dans un export.js.
 
Je n'ai donc pas de formulaire à proprement parler.  
 
Pour l'instant, le mail est configuré avec mailto donc une nouvelle fenêtre s'ouvre avec du texte pré-rempli récupéré d'autre part. Le problème c'est qu'avec mailto je ne peux joindre quelque chose, et je dois donc refaire le tout pour que je puisse joindre quelque chose.
 
Tu vois ce que je veux dire? Je n'ai pas très bien compris comment incorporer ce que tu m'as dit.

Reply

Marsh Posté le 18-02-2014 à 13:25:42    

PS : le code que je t'ai mis est le code de mon .html

Reply

Marsh Posté le 18-02-2014 à 13:29:23    

"les liens avec mon premier serveur initial" -> de quel serveur parles-tu donc :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-02-2014 à 13:37:06    

En gros j'ai trois blocs :
- un serveur, disons S1
- une tablette/IHM
- un autre serveur, disons S2
 
Notre projet à développer (déjà en partie fait) c'est S1 et l'IHM, et l'IHM récupère des infos de S1 qu'elle va traiter, bref, elle va faire des choses avec.  
Notamment on va récupérer sur la tablette un fichier venant de S1.
 
Ce que je veux moi, c'est transférer le fichier de la tablette vers S2, où S2 est un autre serveur sol qui sert de BDD.
 
C'est ce que j'avais tenté d'expliquer en disant "Mon projet se compose d'une partie serveur et une partie IHM. Mon but est d'envoyer après les données à un serveur tiers qui appartiendra probablement au client (sorte de BDD). " dans un de mes messages précédents.
 
Mais si tu veux on peut faire abstraction du S1. Considérons que j'ai un fichier sur la tablette, mon problème c'est que je veux le transférer sur un serveur du client.

Reply

Marsh Posté le 18-02-2014 à 15:00:36    

Ca dépend de quelle manière le serveur du client est "intégré" dans votre environnement logiciel.
 
Soit c'est le serveur S1 qui contient l'url de traitement du mail/upload fichier qui génère l'IHM envoyée à la tablette et du coup, quand tu cliques sur "envoyer", le formulaire est posté sur le serveur S2.
 
Soit le serveur S1 traite le formulaire de l'IHM et c'est S1 qui contient les identifiants de connexion pour se connecter au serveur client S2, par ex, via du FTP, et qui transfère le fichier...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-02-2014 à 15:11:28    

Le S1 n'intervient que pour envoyer des données/un fichier à la tablette. La tablette va ensuite traiter les données et les envoyer à S2.
 
Il me semble que ça ne correspond à aucune des deux options que tu proposes! Comme je t'ai dit, on peut faire abstraction de S1 et considérer que j'ai que ma tablette (et mon code correspond à mon appli), et le serveur du client à qui je vais vendre l'appli qui va servir de BDD.

Reply

Marsh Posté le 18-02-2014 à 15:23:43    

ben si, ça correspond à la première option. Dans l'attribut "action" du <form>, c'est S1 qui va indiquer à la tablette où poster le formulaire (donc à une url de S2 qui devra disposer d'un langage serveur).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-02-2014 à 15:25:55    

Je ne te suis pas..

Reply

Marsh Posté le 18-02-2014 à 15:28:14    

De ce que j'ai compris il ne soumet pas de formulaire, il fait un lien avec un mailto: pré-remplis...


---------------
D3
Reply

Marsh Posté le 18-02-2014 à 15:29:21    

Avec un mailto, t'es pas très d'envoyer un mail avec un fichier joint :/
 
Et pour info, on utilise plus mailto depuis bien longtemps pour éviter de se faire spammer...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-02-2014 à 15:52:57    

Le code a été fait rapidement avec un mailto pour voir que ça marchait bien avec du texte et qu'on récupérait les bonnes infos. Maintenant on veut améliorer la chose en joignant un fichier... et c'est pas possible avec un mailto!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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