Si quelqu'un a la gentillesse de m'expliquer comment cela fonctionne avec javamail par exemple et m'indiquer l'utilité des méthodes car malgré la doc je suis plutôt perdu.
Cordialement
Version imprimable
Si quelqu'un a la gentillesse de m'expliquer comment cela fonctionne avec javamail par exemple et m'indiquer l'utilité des méthodes car malgré la doc je suis plutôt perdu.
Cordialement
Voici une classe qui permet d'envoyer un mail à partir d'un mail gmail...
Il suffit de mettre ton mail gmail et ton password et ça marche tout seul..
Bonjour khoufouq,
Merci pour cette class, qui est très intéressante car je cherchais aussi pour faire un envoie depuis gmail. Cependant la n'est pas mon problème pour faire un envoie de mail, ça je sais faire. Mon problème réside dans les charsets et leur conversion.
Je m'explique j'ai développé un bout de code pour envoyé un mail sur une machine Windows. Tout fonctîonnait bien et je faisais uniquement des setText etc et la j'avais bien les accents mais dès lors que j'ai déployé mon Ear sur une machine qui je suppose dois avoir un charset différent, la je perds tous les accents et tt. J'ai tenté beaucoup de chose et finis par trouvé. Malheureusement maintenant je me heurte à un autre problème avec un form-data ( pour envoie avec PJ ) et ce que j'avais fais pour mon précédent form ne suffit pas.
Alors ma question est la suivante comment marche c'est foutu charset, car je n'y comprends rien ...
As-tu essayé ça :
props.put("mail.mime.charset", "UTF-8");
Si tu mets de l'UTF-8 t'es tranquille après je pense...
Salut,
Ah non je ne connais pas cette variable. Si je comprends bien c'est pour forcer le charset sur le le Mail c'est bien ca ?
Re-Bonjour,
Alors j'ai tenté d'utilisé cela en remodifiant un peu mon code :
Et sur ma machine ( en Windows ) cela fonctionne parfaitement mais sur le serveur ça fait toujours pareil ...Citation:
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart){
String bodytxt="";
String from="";
String to="";
String cc=null;
String bcc=null;
String subject="";
String itemid = null;
boolean attachmentFile = false;
try{
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List items = upload.parseRequest(request);
Iterator it = items.iterator();
while(it.hasNext()){
FileItem item = (FileItem) it.next();
if (item.isFormField()) {
if("body".equals(item.getFieldName()))
bodytxt=item.getString();
else if("from".equals(item.getFieldName()))
from=item.getString();
else if("to".equals(item.getFieldName()))
to=item.getString();
else if("cc".equals(item.getFieldName()))
cc=item.getString();
else if("bcc".equals(item.getFieldName()))
bcc=item.getString();
else if("subject".equals(item.getFieldName()))
subject=item.getString();
else if("itemid".equals(item.getFieldName()))
itemid=item.getString();
}
else{
}
System.out.println("é "+item.getFieldName());
}
Properties props = new Properties();
props.put("mail.smtp.host","172.30.68.80");
props.put("mail.smtp.port","25");
props.put("mail.mime.charset","UTF-8");
Session session = Session.getInstance(props,null);
session.setDebug(true);
MimeMessage msg = new MimeMessage(session);
try{
msg.setFrom(new InternetAddress(from));
} catch (AddressException e) {
request.setAttribute("error","1");
request.getRequestDispatcher("mail.jsp").forward(request, response);
}
InternetAddress[] tos = null;
try{
tos = InternetAddress.parse(to);
}catch (AddressException e) {
request.setAttribute("error","2");
request.getRequestDispatcher("mail.jsp").forward(request, response);
}
if(tos==null){
request.setAttribute("error","2");
request.getRequestDispatcher("mail.jsp").forward(request, response);
}
msg.setRecipients(Message.RecipientType.TO,tos);
try{
if(cc != null)
{
InternetAddress[] ccs =
InternetAddress.parse(cc);
msg.setRecipients(Message.RecipientType.CC,ccs);
}
}catch (AddressException e) {
request.setAttribute("error","3");
request.getRequestDispatcher("mail.jsp").forward(request, response);
}
try{
if(bcc != null)
{
InternetAddress[] ccs = InternetAddress.parse(bcc);
msg.setRecipients(Message.RecipientType.BCC,ccs);
}
}catch (AddressException e) {
request.setAttribute("error","4");
request.getRequestDispatcher("mail.jsp").forward(request, response);
}
msg.setSubject(subject);
msg.setSentDate(new Date());
if(!attachmentFile){
msg.setText(new String(bodytxt.getBytes(),"UTF-8"),"UTF-8");
// msg.setText(bodytxt);
}
else
{
// BodyPart bodyencode = new MimeBodyPart();
// MimeBodyPart body = new MimeBodyPart(),
// attachment = (MimeBodyPart)fields.get("attachment");
// body.setText(bodytxt);
//
// MimeMultipart multipart = new MimeMultipart();
// MimeMultipart multipartencode = new MimeMultipart();
// multipart.addBodyPart(body);
// multipart.addBodyPart(attachment);
// multipartencode.addBodyPart(bodyencode);
// multipartencode.addBodyPart(attachment);
// msg.setContent(multipart);
}
Transport.send(msg);
}
catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch(SecurityException e ){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Log sur le serveur
Citation:
[2/16/11 10:01:18:370 CET] 00000033 SystemOut O DEBUG SMTP: Found extension "HELP", arg ""
[2/16/11 10:01:18:370 CET] 00000033 SystemOut O DEBUG SMTP: Found extension "SIZE", arg "51200000"
[2/16/11 10:01:18:371 CET] 00000033 SystemOut O DEBUG SMTP: Found extension "PIPELINING", arg ""
[2/16/11 10:01:18:367 CET] 00000033 SystemOut O DEBUG SMTP: use8bit false
[2/16/11 10:01:18:367 CET] 00000033 SystemOut O MAIL FROM:<xxxxxxxxx>
[2/16/11 10:01:18:367 CET] 00000033 SystemOut O 250 xxxxxxxxx
... Sender OK
[2/16/11 10:01:18:372 CET] 00000033 SystemOut O RCPT TO:<xxxxxxx>
[2/16/11 10:01:18:378 CET] 00000033 SystemOut O 250 xxxxxxxx... Recipient OK
[2/16/11 10:01:18:378 CET] 00000033 SystemOut O DEBUG SMTP: Verified Addresses
[2/16/11 10:01:18:378 CET] 00000033 SystemOut O DEBUG SMTP: xxxxxxxxx
[2/16/11 10:01:18:378 CET] 00000033 SystemOut O DATA
[2/16/11 10:01:18:375 CET] 00000033 SystemOut O 354 Enter message, end with "." on a line by itself
[2/16/11 10:01:18:375 CET] 00000033 SystemOut O Message-ID: <1792436950.1297846878365.JavaMail.root@xxxxxxxxx>
Date: Wed, 16 Feb 2011 10:01:18 +0100 (CET)
From: xxxxxxxxxxx
To: xxxxxxxxxx
Subject: =?ANSI_X3.4-1968?B?UmU6ID8/Pz8/Pz8/Pz8/Pz8/Pz8/Pw==?=
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
??????????????????????
.
[2/16/11 10:01:18:381 CET] 00000033 SystemOut O 250 Message accepted for delivery
[2/16/11 10:01:18:382 CET] 00000033 SystemOut O QUIT
Bonjour,
Enfin trouvé, après une multitude de test, j'ai eu l'idée de modifier avant envoie de mon formulaire les données avec urlencode en javascript, après modification de ma Servlet pour décoder ces données maintenant ca marche.