IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[javaMail] Aucune trace des mails envoyés !...


Sujet :

API standards et tierces Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut [javaMail] Aucune trace des mails envoyés !...
    Bonjour,

    J'utilise l'API JavaMail pour envoyer des mails. Tout a l'air de fonctionner, aucun message d'erreur n'est indiqué lors de l'exécution du code, et pourtant, les mails que j'envoie n'arrivent pas à déstination !

    Je me suis assuré de la validité des adresses mail auxquelles j'envoie mes messages. Il y a bien un serveur SMTP installé sur la machine hôte. Quelqu'un a-t-il une idée pour résoudre mon problème ??

    Voici mon code :

    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
     
    //imports
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.util.*;
     
    //Déclaration des variables
    String from = "adresseMail1@fauxmail.fr";
    String to = "adresseMail2@fauxmail.fr";
    String subject = "Essai d'envoie de mail";
    String content = "Ceci est un test";
     
    try {
       //paramètres pour l'envoi SMTP
       Properties props = System.getProperties();
       props.put("mail.smtp.host", "adresse_IP_de_La_Machine_Ou_Est_Installé_Le_Serveur_SMTP");
       Session session = Session.getDefaultInstance(props, null);
       MimeMessage message = new MimeMessage(session);
       message.setFrom(new InternetAddress(from));
       message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
       message.setSubject(subject);
     
       //Contenu du message
       message.setText(content);
     
       //Envoi du message
       javax.mail.Transport.send(message);
    }
    catch (Exception e) {
       System.err.println("L'envoi du mail a échoué : "+e.getMessage());
    }

    Merci d'avance !

  2. #2
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Tiens voici la classe que j'ai implémenter et qui fonctionne.
    Il suffit que tu ne tiennes pas compte des methode de set() qui me permette de changer à la volée les adresses:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    package Utilities;
    import java.util.Date;
    import java.util.Properties;
     
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.AddressException;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
     
    /**
     * Classe permettant d'envoyer un mail.
     */
    public class SendMail implements Runnable
    {
       private final static String MAILER_VERSION = "Java";
       private static boolean debug = false;//Suivi de l'execution en concole si à "true"
       public static boolean result;
       private static String serveurIPaddress = "";
       private static String recepteur1AdressMail = "";
       private static String recepteur2AdressMail = "";
       private static String emetteurAdressMail="";
       private String mess;
       private String title;
     
     
       public SendMail(String message, String titre)
       {
       		mess = message;
       		title = titre;
       }
     
     
       public void run() 
       {
    		envoyerMailSMTP(mess, title);
       }
     
     
     
       /**Methode initialisant l'adresse IP du serveur mail SMTP*/
       public static void setServeurIPaddress(String ip)
       {
    	serveurIPaddress = ip;
       }
     
       /**Methode initialisant l'adresse email du recepteur n°1*/
    	 public static void setRecepteur1AdressMail(String mail)
    	 {
    		recepteur1AdressMail = mail;
    	 }
     
    	/**Methode initialisant l'adresse email du recepteur n°2*/
    		public static void setRecepteur2AdressMail(String mail)
    		{
    		   recepteur2AdressMail = mail;
    		}
     
    	/**Methode initialisant l'adresse mail emeteur*/
    	 public static void setEmetteurAdressMail(String mail)
    	 {
    	    emetteurAdressMail = mail;
    	 }
     
     
    	public static String getServeurIPaddress()
    	  {
    	   	return serveurIPaddress;
    	  }
     
    	public static String getRecepteur1AdressMail()
    	  {
    	   	return recepteur1AdressMail;
    	  }
     
    	public static String getRecepteur2AdressMail()
    	  {
    		return recepteur2AdressMail;
    	  }
     
    	public static String getEmetteurAdressMail()
    	  {
    	   	return emetteurAdressMail;
    	  }
     
     
     
       /**Methode envoyant un mail avec le message entré en paramètre
        * ATTENTION LES ACCENS NE SONT PAS GERES !!!*/
       public static boolean envoyerMailSMTP(String text, String title) 
       {
     
     
    		result = false;
    		 try {
    				  Properties prop = System.getProperties();
    				  prop.put("mail.smtp.host", serveurIPaddress);
    				  Session session = Session.getDefaultInstance(prop,null);
    				  Message message = new MimeMessage(session);
    				  message.setFrom(new InternetAddress(emetteurAdressMail));//expediteur temporaire avant adresse définitive
    				  InternetAddress[] internetAddresses = new InternetAddress[2];
    				  internetAddresses[0] = new InternetAddress(recepteur1AdressMail);//recepteur n°1
    				  internetAddresses[1] = new InternetAddress(recepteur2AdressMail);//recepteur n°2 (dans le cas d'un tableau à 2 entrée (...new InternetAddress[2];)
    				  message.setRecipients(Message.RecipientType.TO,internetAddresses);
    				  message.setSubject("Reservation "+title);
    				  message.setText(text);
    				  message.setHeader("X-Mailer", MAILER_VERSION);
    				  message.setSentDate(new Date());
    				  session.setDebug(debug);
    				  Transport.send(message);
    				  result = true;
    		 } catch (AddressException e) {
    				  e.printStackTrace();
    		 } catch (MessagingException e) {
    				  e.printStackTrace();
    		 }
    		 return result;
       }
     
    }
    //checksum perso = 122
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut
    Merci je vais essayer ça et te tenir au courant !

    Bonne soirée.

    ToCToF

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut
    J'ai essayé ce dernier code, mais ça fonctione encore moins.

    En fait je fais appel à cette méthode au sein d'une JSP.

    Avec le code que j'ai envoyé, les affichages (du type "message envoyé") s'affichent correctement, comme si tout se passait bien. Aucun message d'erreur n'est affiché non plus. Pourtant, aucune trace des mails que j'essaye d'envoyer. Comme si ça bloquait au niveau du serveur SMTP, et non au niveau du code Java

    Avec le code de Regis.C, je n'ai même plus d'affichage des messages dans ma JSP : la page ne se charge pas du tout, donc le code ne s'éxécute pas ou s'éxécute mal.

    Quelqu'un aurai-il une idée pour ce problème. Est-ce que ça peut provenir du serveur SMTP lui-même ?

    Merci

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    => essaie de voir si ce n'est pas un pb d'authentification auprès de ton serveur mail.

    Voir http://www.developpez.net/forums/vie...authentication
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 93
    Points : 114
    Points
    114
    Par défaut
    Si ce n'est pas un problème d'authentification, c'est peut-être parce que le serveur SMTP ne permet pas le relai pour ton hôte (blocage IP par exemple).

  7. #7
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    envoyer des mail avec javamail est plus penible que de le faire sans :
    essaie plutot ce code :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    import java.io.*;
    import java.net.Socket;
    import java.util.Date;
    import java.util.StringTokenizer;
     
    public class MailIo {
     
    	public MailIo() {
     
    	}
     
    	public static void sendMail(Socket sock, String localHost,
    			String Destinataire, String from, String subject, String message)
    			throws IOException {
    		out = new PrintWriter(sock.getOutputStream());
    		in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
    		receive();
    		send("HELO " + localHost);
    		receive();
    		send("MAIL FROM: <" + from + ">");
    		receive();
    		send("RCPT TO: <" + Destinataire + ">");
    		receive();
    		send("DATA");
    		receive();
    		send("Subject: " + subject);
    		send("Date: " + new Date());
    		send("Reply-To:" + from);
    		send("To: " + Destinataire);
    		StringTokenizer tokenizer = new StringTokenizer(message, "\n");
    		while (tokenizer.hasMoreTokens())
    			send(tokenizer.nextToken());
    		send(".");
    		receive();
    		send("QUIT");
    		receive();
    		sock.close();
     
    			}
     
    	private static void receive() throws IOException {
    		String line = in.readLine();
    		if (line != null) {
    			System.out.println(line);
    			System.out.println("\n");
    		}
     
    	}
     
    	private static void send(String s) {
    		System.out.print(s);
    		System.out.print("\r\n");
    		System.out.flush();
    		out.print(s);
    		out.print("\r\n");
    		out.flush();
     
    	}
     
    	private static BufferedReader in;
     
    	private static PrintWriter out;
    }

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Si ce n'est pas un problème d'authentification, c'est peut-être parce que le serveur SMTP ne permet pas le relai pour ton hôte (blocage IP par exemple).
    Tsss, ce qui revient a... un problement d'authentification...
    Regardez la doc et la FAQ sur le site de JavaMail, il faut s'authentifier pour eviter le pb du serveur de courrier qui refuse le relay.
    Voir http://java.sun.com/products/javamail/FAQ.html#norelay ou http://java.sun.com/products/javamai...ml#connectsend. MAIS dans son cas il n'a pas d'exception. D'ailleurs moi non-plus je n'en avais pas jusqu'a ce que je mette JavaMail en mode debug. Et effectivement, de mon cote, c'etait un pb de non-relai.

    Y a aussi ca http://java.sun.com/products/javamail/FAQ.html#badaddr mais bon je suis sur que tu as verifie la validite de ton addresse de destination.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Salut,

    regarde par ici, il y a un exemple de code pour s'authentifier sur un serveur SMTP

    http://www.developpez.net/forums/vie...r=asc&start=45
    --Miss Gaëlle--

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/06/2008, 14h51
  2. [Mail] Les liens des mails envoyés n'apparaissent pas
    Par ecarbill dans le forum Langage
    Réponses: 4
    Dernier message: 30/05/2008, 12h35
  3. Récupérer des mails envoyés ?
    Par Bestiol dans le forum Unix
    Réponses: 3
    Dernier message: 16/04/2008, 14h21
  4. [MCD] Gestion d'historique des mails envoyés, recus
    Par vodasan dans le forum Schéma
    Réponses: 6
    Dernier message: 15/09/2006, 17h54
  5. Réponses: 4
    Dernier message: 13/07/2006, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo