bonjour;
j'ai une fonction java qui me permet d'envoyer un mail.cette fonction ça marche bien avec le server mail mozilla.mais quand j'ai fait un test pour un server Microsoft Outlook 2003 configurée avec un serveur Microsoft Exchange ça marche pas.
le code de ma fonction java:
public void SenderMail() {

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
       //Nous devons passer les informations au serveur de messagerie sous forme de propriétés
        System.out.println("---->Entrer fonction SenderMail");
        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp");
        System.out.println("**** mail.transport.protocol : smtp ****");
        props.setProperty("mail.host", "ip_serveur");
        System.out.println("**** mail.host :"+ ip_serveur+"****");
        //Créer objet Session.
        System.out.println("****create session*****");
        session = Session.getDefaultInstance(props, null);
        System.out.println("*****Debug mode : true ****");
        session.setDebug(true);
        try {
            //Créer un message mail
            System.out.println("*****Créer un message mail****");
            mesg = new MimeMessage(session);
                //Adresse From - Indiquer la provenance du mail
                mesg.setFrom(new InternetAddress("expMail"));
                //Adresse TO.
                System.out.println("*****Adresse TO ****");
                InternetAddress toAddress = new InternetAddress("adresseto");
                mesg.addRecipient(Message.RecipientType.TO, toAddress);
                mesg.setSubject("mailObjet");
                //Text mail
                mesg.setText("mailText");
            //envoyer mail
            System.out.println("*****send mail****");
            Transport.send(mesg);
            System.out.println("*****mail is sent****");
            System.out.println(" sortie fonction SenderMail----->");
        } catch (MessagingException ex) {
        while ((ex = (MessagingException)ex.getNextException()) != null) {
        ex.printStackTrace();
        }
        }
        }
la trace d'execution de la fonction d'envoi de mail me donne:
MAIL FROM:<xxxx@domaine>^M
250 Ok^M
RCPT TO:<xxxx@domaine>^M
554 <xxxx@domaine>: Relay access denied^M
DEBUG SMTP: Invalid Addresses
DEBUG SMTP: xxxx@domaine
DEBUG SMTP: Sending failed because of invalid destination addresses
RSET^M
250 Ok^M
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
class com.sun.mail.smtp.SMTPAddressFailedException: 554 <xxxx@domaine>: Relay access denied

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)
note:
pas de probleme pour les parametres ip_serveur ,expmail,... .je les recupere a partir d'un fichier conf.
quelqu'un a une information sur ce genre de probleme?
merci.