Envoi de mail en JavaMail

Signaler
Messages postés
5
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
1 février 2005
-
Messages postés
5
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
1 février 2005
-
Bonjour,
j'envoi des fichiers mails avec l'api JavaMail
mais j'ai souvent des exceptions (marche une fois sur deux en moyenne)

de plus l'envoi ne marche que depuis ET vers les serveurs freesbes et hotmail

que faut il faire?

Voici le code :

try {

// Obtenir les propriétés du systeme
Properties props = System.getProperties();

// Inscrire le nom du serveur SMTP que l'on va utiliser
props.put("mail.smtp.host", smtpServer);

// Création d'une session utilisateur, sur la base des propriétés du système
Session session = Session.getDefaultInstance(props, null);

// Définition du message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);

// On rempli le champ "CC" si nécessaire
if (!cc.equals("")) {
message.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc, false));
}

// Test si fichier attaché ou non
if (chemAttach.equals("")) {
// On remplit le contenu du message
message.setText(body);
}

else {
// Première partie du message
BodyPart messageBodyPart = new MimeBodyPart();

// Contenu du message
messageBodyPart.setText(body);

//Ajout de la première partie du message dans un objet Multipart
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);

// Partie de la pièce jointe
BodyPart messageBodyPart2 = new MimeBodyPart();
DataSource source = new FileDataSource(chemAttach);
messageBodyPart2.setDataHandler(new DataHandler(source));
messageBodyPart2.setFileName(chemAttach);

//Ajout de la partie pièce jointe
multipart.addBodyPart(messageBodyPart2);

message.setContent(multipart);
}

// Envoi du message
message.setHeader("Crypto-Mailer", MAILER_VERSION);
message.setSentDate(new Date());
Transport.send(message);

flagEnvoyé = true;
}

catch (Exception ex) {
System.out.println("Echec de l'envoi no"+compteur);
}
}

2 réponses

Messages postés
2835
Date d'inscription
lundi 11 août 2003
Statut
Modérateur
Dernière intervention
16 décembre 2006
10
Salut

Quelle genre d'exception tu as ???? Le mieux serait de catcher chaque exception à part et nez pas mettre de catch (Exception e) sinon on ne connait pas l'exception réelle ...

@+
Messages postés
5
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
1 février 2005

Merci
Apparamment, j'ai un message qui me dit que le SMTP server est refusé.
donc c mort...

Erreur affichée :

javax.mail.SendFailedException: Invalid Addresses;





nested exception is:
class com.sun.mail.smtp.SMTPAddressFailedException: 550 RCPT TO:<[mailto:c.dupond@caramail.com c.dupond@caramail.com]> Relaying not allowed





at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1130)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:525)
at javax.mail.Transport.send0(Transport.java:151)
at javax.mail.Transport.send(Transport.java:80)