Mon but : uploader un fichier sur un serveur Tomcat et l'envoyer par email en attachment
L'upload :
Code :
- System.out.println ("Début de l'upload" );
- // Variables
- int count=0;
- SmartUpload mySmartUpload = new SmartUpload();
- try {
- // Initialization
- mySmartUpload.initialize (config,request,response);
- System.out.println ("initialisation effectuée" );
- // Upload
- mySmartUpload.upload();
- com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
- // Display the result
- System.out.println(count + " file uploaded." );
- SendMail monMail = new SendMail ("exemple@yahoo.fr", "monSujet", "monTexte", myFile);
- System.out.println("Instantiation Sendmail" );
- monMail.send();
- System.out.println ("Envoi du mail" );
- } catch (Exception e){...
- }
- }
|
La fonction send() :
Code :
- ublic void send() throws java.io.IOException { //destinataire du mail
- String to = getTo();
- //expediteur du mail
- String from = getFrom();
- //passerelle smtp
- String smtphost = getSmtpHost();
- //message
- String msgText1= getText();
- //sujet
- String sujet = getSubject();
- //attachment
- System.out.println("Variables initialisées" );
- //****************************************************
- // create some properties and get the default Session
- java.util.Properties props = System.getProperties();
- props.put("mail.smtp.host", smtphost);
-
- javax.mail.Session session = javax.mail.Session.getDefaultInstance(props, null);
-
- try {
- // creation du message
- // la 1ere partie du message, c'est le corps du message
- // la 2eme c'est la piece jointe
- javax.mail.internet.MimeMessage msg = new javax.mail.internet.MimeMessage(session);
- msg.setFrom(new javax.mail.internet.InternetAddress(from));
- javax.mail.internet.InternetAddress[] address = {new javax.mail.internet.InternetAddress(to)};
- msg.setRecipients(javax.mail.Message$RecipientType.TO, address);
- msg.setSubject(sujet);
-
- // creation de la partie texte
- javax.mail.internet.MimeBodyPart mbp1 = new javax.mail.internet.MimeBodyPart();
- mbp1.setText(msgText1);
-
- // creation de la deuxieme partie
- javax.mail.internet.MimeBodyPart mbp2 = new javax.mail.internet.MimeBodyPart();
-
-
- // on attache le fichier
- mbp2.setDataHandler(new javax.activation.DataHandler(uploadedFile, uploadedFile.getSubTypeMIME()));
- mbp2.setFileName(uploadedFile.getFileName());
-
-
- // creation du Multipart et on y met les 2 parts
- javax.mail.Multipart mp = new javax.mail.internet.MimeMultipart();
- mp.addBodyPart(mbp1);
- mp.addBodyPart(mbp2);
-
- // ajout du Multipart au message
- msg.setContent(mp);
-
- // envoi du message
- javax.mail.Transport.send(msg);
-
- }
- catch (javax.mail.MessagingException mex) {...
- }
|
Problème : ça marche pas. C l'attachement du fichier qui foire, la partie en gras. ça fait un moment ke je cherche, j'y arrive pas. La fonction, le constructeur DataHandler accepte en paramètre un Object et un MIMEType. Je ne sais pas koi lui fournir, notamment pour l'objet.
Quelqu'un a déjà fait ça?
Message édité par Zeplusoif le 31-10-2002 à 10:42:53