envoi de formulaire par mail qui redirige vers servlet
Bonjour,
j'ai actuellement une succession de formulaires qui au final débouche sur un envoi de mail:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| if (request.getParameter("validerRecap") != null) {
boolean debug = false;
//String destinataires[] = {"florian.cadic@sdis44.fr"};
String subject = "Demande d'installation";
Utilisateur monUtilisateur = ((Utilisateur)session.getAttribute("utilisateurLog"));
String from = monUtilisateur.getNom().toUpperCase()+"."+monUtilisateur.getPrenom()+"@DemandeInstallation";
Iterator itApp = ((Vector)session.getAttribute("mesApplications")).iterator();
int cpt=0;
while(itApp.hasNext()){
Vector profils = ((Vector)session.getAttribute("mesProfilsAppli"));
Application appCourante =((Application)(GetList.getApplication(((String)itApp.next())).get(0)));
String destinataires[] = {ApplicationDAO.getInstance().findReferent(((String)itApp.next())).getMail()};
String message = "<html><head><title> Avis concernant une demande</title></head><body>";
message += monUtilisateur.getNom()+" "+monUtilisateur.getPrenom()+" a fait une demande d'installation pour l'application suivante :<br>";
message += "- "+appCourante.getLibelleApplication();
message += "<br>Profil :"+ ((Profil)GetList.getProfil(((String)profils.get(cpt))).get(0)).getLibelleProfil();
message += "<br>Validez vous sa demande pour cette application et ce profil?";
message += "<form action='http://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/integration/demande/FormulaireDemande' method='POST'>";
message += "<input type='submit' name='validerDemandeMail' value='Valider' onClick='alert('test ok')' /><input type='submit' name='refuserDemandeMail' value='Refuser' />";
message += "</form></body></html>";
try {
// Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.host", "W2K3-EXCH-1.sdis44.fr");
// create some properties and get the default Session
javax.mail.Session sessionMail = Session
.getDefaultInstance(props, null);
sessionMail.setDebug(debug);
// create a message
Message msg = new MimeMessage(sessionMail);
// set the from and to address
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[destinataires.length];
for (int i = 0; i < destinataires.length; i++) {
addressTo[i] = new InternetAddress(destinataires[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/html");
System.out.println("envoi");
Transport.send(msg);
getServletContext().getRequestDispatcher(
JSP_PATH_DEMANDE + "formulaireConfirmationValidation.jsp")
.forward(request, response);
} catch (MessagingException ex) {
ex.printStackTrace();
}
cpt++;
}
} |
Comme vous pouvez le voir(ou pas) je recupere l'utilisateur loggé, et une liste d'applications ainsi que les profils liés.
En fait, à chaque application est attaché une personne, je tente donc de faire une boucle pour envoyer un mail à chacune de ces personnes; malheureusement ça n'envoie qu'un seul et unique mail à la premiere personne ( protection antispam j'imagine).
Le mail est donc en format html.
La personne reçoit donc un mail avec les différentes references et deux boutons ( Valider / Refuser), et le but serait de pouvoir pointer sur ma servlet via ces deux boutons; c'est ce que j'ai tenté de faire via le
Code:
<form action="urldemaservlet" method="POST">
Malheureusement lorsque je clique sur nimporte quel bouton , rien ne se passe :(
Je voudrais donc savoir d'une part si mon envoi de mails multiple est faisable et d'autre part si ce que je souhaite mettre en place sur mon mail est possible?
Merci.