[JSP] Sécurité lors de l'envoie d'un mail
Bonjour, j'ai un site web qui propose d'envoyer un mail à l'administrateur de ce site depuis une page Contact. Voici comment j'ai créer mes JSP:
Contact.jsp
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
| <html>
<head>
<title>Mail API</title>
</head>
<body>
<table border="1" width="50%" cellpadding="0" cellspacing="0">
<tr>
<td width="100%">
<form method="POST" action="mail.jsp">
<table width="100%" cellpadding="0" cellspacing="5"
bgcolor="#BABABA">
<tr class="styleContactBig">
<td><b> En savoir plus ? Ãtre contacté ? une info ? un
commentaire ? </b>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr class="styleContactSmall">
<td> nom <input name="nom"
type="text" style="float: right" size="30" />
</td>
</tr>
<tr class="styleContactSmall">
<td> prénom <input
name="prenom" type="text" style="float: right" size="30" />
</td>
</tr>
<tr class="styleContactSmall">
<td> société <input name="societe"
type="text" style="float: right" size="30" />
</td>
</tr>
<tr class="styleContactSmall">
<td> email <input name="email"
type="text" style="float: right" size="30" />
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr class="styleContactSmall">
<td> votre message <textarea
name="texte" cols="35" rows="10" class="inputVotreMessage"
style="float: right; text-align: left;" type="text"></textarea>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr class="styleContactSmall">
<td><input name='soumettre' type='submit' value='Envoyer'
style="float: right;">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html> |
mail.jsp
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
| <%@ page language="java"
import="javax.naming.*,java.io.*,javax.mail.*,javax.mail.internet.*,com.sun.mail.smtp.*,java.util.*"%>
<html>
<head>
<title>Mail</title>
</head>
<body>
<%
try {
// Creation du properties
Properties props = System.getProperties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "monPort");
props.put("mail.smtp.socketFactory.port", "monPort");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
// Creation d'une session mail à partir du properties
Session mailSession = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
"monAddresse", "monMotDePasse");
}
});
// Creation d'un message mail au format MIME
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress("monAddresse"));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress( request.getParameter("email")));
message.setSubject("subject");
String contenuMail = "nom: " + request.getParameter("nom")
+ "\nprenom: " + request.getParameter("prenom")
+ "\nsociete: " + request.getParameter("societe")
+ "\nemail: " + request.getParameter("email")
+ "\n\nMessage: " + request.getParameter("texte");
message.setContent(contenuMail, "text/plain");
Transport.send(message);
//out.println("Thanks for sending mail!");
} catch (Exception e) {
out.println(e.getMessage());
e.printStackTrace();
}
response.sendRedirect("Accueil.html");
%>
</body>
</html> |
Mon code est fonctionnel, mon problème vient plutôt de la sécurité de l'adresse mail que j'utilise pour l'envoie de mail. Y a t-il un moyen d'éviter de noter le mot de passe en dur sur la page jsp?