Envoi de mail en JavaMail

fllacer Messages postés 5 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 1 février 2005 - 27 janv. 2005 à 14:29
fllacer Messages postés 5 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 1 février 2005 - 1 févr. 2005 à 22:41
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

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
31 janv. 2005 à 13:34
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 ...

@+
0
fllacer Messages postés 5 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 1 février 2005
1 févr. 2005 à 22:41
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)
0
Rejoignez-nous