Envoyer des mails avec pièces jointes

cs_pipin Messages postés 14 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 18 août 2003 - 11 juil. 2003 à 16:06
bacdroit2 Messages postés 2 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 26 mai 2004 - 26 mai 2004 à 12:25
J'essaie d'envoyer des pièces jointes dans un mail.
Ca marche lorsque je teste sous forte4java mais ça plante à partir d'un jar exécutable.
Il me renvoie que le type de données en entête n'est pas le bon.
voila le code :

public EnvoiMail( Vector _destinataire, //Destinataire
User _user, //Expéditeur
String sujet, //Sujet
String texte, //Corps du mail
Vector _fichier, //Nom et chemin du fichier
)
{
destinataire=_destinataire;
user=_user;
fichier=_fichier;
parametres=new Parametres();
String msgText1 = texte;
boolean debug = false;
// create some properties and get the default Session
Properties props = new Properties();
props.put("mail.smtp.host", parametres.getServeurSmtp());
Session session = Session.getInstance(props);
session.setDebug(debug);
try{
DataHandler.setDataContentHandlerFactory(new UtlMailContentFactory());
} catch (java.lang.Error e) { }
//DataHandler.setDataContentHandlerFactory(new UtlMailContentFactory());
for(int i=0;i<destinataire.size();i++){
Client tmpclient = (Client) destinataire.get(i);
String to="";
try {
// create a message
Message msg=new MimeMessage(session);
msg.setFrom(new InternetAddress(user.getEmail()));
InternetAddress[] address = {new InternetAddress(tmpclient.getEmail())};
msg.setRecipients(Message.RecipientType.TO,address);
msg.setSubject(sujet);

// Création et remplissage de la première partie du message
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(msgText1);

if (fichier.size()>0){
System.out.println("il existe des pièces jointes");
// Création du "Multipart"
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);

for (int j=0;j<fichier.size();j++){
Produit tmprod=(Produit) fichier.get(j);
// Création de la deuxième partie du message
MimeBodyPart mbp2 = new MimeBodyPart();
// Attachement de la pièce jointe au message

File f = new File(tmprod.getPdfInfo().replace('#','\\'));
System.out.println(f.getAbsolutePath());
FileDataSource fds = new FileDataSource(f);
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());

// ajout des pièces jointes dans le multipart
mp.addBodyPart(mbp2);
}
// Ajout du "Multipart" au message
msg.setContent(mp);
}
// set the Date: header
msg.setSentDate(new java.util.Date());
// Envoi du message
try {
Transport.send(msg);
}
catch (SendFailedException e){System.out.println("les adresses incorrectes sont: ");
Address[] adress = e.getInvalidAddresses() ;
System.out.println(e);
}

} catch (MessagingException mex) {
System.out.println("messagingException générée pour le client : "+tmpclient.getRaisonSociale());
mex.printStackTrace();
Exception ex = null;
if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
}
}
}

Merci de votre aide

Willy

1 réponse

bacdroit2 Messages postés 2 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 26 mai 2004
26 mai 2004 à 12:25
Bonjour,

je ne sais pas te répondre, par contre, je suis confronté aux problème que tu as résolu.
Je ne sais pas comment faire pour joindre un fichier à mon mail, pourrais tu m'expliqur merci beaucoup

bacdroit
0
Rejoignez-nous