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

Collection et Stream Java Discussion :

[JAVAMAIL] Envoi d'un mail


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Par défaut [JAVAMAIL] Envoi d'un mail
    Bonsoir à tous,

    J'essaie d'envoyer un mail via l'API javamail. Je l'ai déjà fait mais il y a longtemps et je n'y arrive plus.

    Imaginons que j'ai les variables suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String domain = "mydomain.fr"
    String host = "smtp.mydomain.fr"
    String user = "monuser@mydomain.fr"
    String password = "mypassword"
    int port = 25
    Quel est le code pour envoyer un mail ?

    Merci d'avance, j'avoue que je suis bêtement coincé :s

    Bonne soirée,

    Romaric

  2. #2
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    1/ Télécharger Javamail.

    2/ Décompresser l'archive.

    3/ Aller voir dans le dossier démo.

    4/ Ouvrir le fichier msgsend.java

    Je comprends pas que les gens ne lisent jamais ni les readme ni les contenus des libs qu'ils téléchargent.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    Salut
    voici un exemple typique d'envoi de mail via la librairie javamil
    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
     
     
    import java.io.*;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
     
    public class Envoi {
     
    /** Destinataire du message. */
    protected String message_dest = "nobody@nobody.com";
    /* Objet du message. */
    protected String message_objet = " detail du sujet ";
    /** Destinataire du message en copie (CC). */
    protected String message_cc = "dest@hotmail.com";
    /** Texte du message. */
    protected String message_corps =
    "Bonjour dans une semaine vous recevrez de  " +
    "plus amples détails sur " +
    "le sujet de votre choix";
     
    /** Objet session de JavaMail. */
    protected Session session;
    /** Objet message de JavaMail. */
    protected Message mesg;
     
     
    public void envoyerMail() {
     
    // Nous devons passer les informations au serveur de messagerie sous
    // forme de propriétés car JavaMail en comporte beaucoup...
    Properties props = new Properties();
     
    // Votre réseau doit donner au serveur SMTP local le nom "nom_du_serveur_smtp"
     
    props.put("mail.smtp.host", "nom_du_serveur_smtp");
     
    // Créer l’objet Session.
    session = Session.getDefaultInstance(props, null);
    session.setDebug(true); //activer le mode verbeux !
     
    try {
    // Créer un message.
    mesg = new MimeMessage(session);
     
    // Adresse From - Indiquer la provenance du message
    mesg.setFrom(new InternetAddress("anonymous@service.domain"));
     
    // Adresse TO.
    InternetAddress toAddress = new InternetAddress(message_dest);
    mesg.addRecipient(Message.RecipientType.TO, toAddress);
     
    // Adresse CC.
    InternetAddress ccAddress = new InternetAddress(message_cc);
    mesg.addRecipient(Message.RecipientType.CC, ccAddress);
     
    // Objet.
    mesg.setSubject(message_objet);
     
    // Corps du message.
    mesg.setText(message_corps);
     
    // Enfin, envoyer le message !
    Transport.send(mesg);
     
    } catch (MessagingException ex) {
    while ((ex = (MessagingException)ex.getNextException()) != null) {
    ex.printStackTrace();
    }
    }
    }
    /** Programme principal*/
    public static void main(String[] av) {
    Envoi env = new Envoi();
    env.envoyerMail();
    }
    }
    Bonne chance

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut JavaMail
    Citation Envoyé par totoz Voir le message
    Salut
    voici un exemple typique d'envoi de mail via la librairie javamil
    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
     
     
    import java.io.*;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
     
    public class Envoi {
     
    /** Destinataire du message. */
    protected String message_dest = "nobody@nobody.com";
    /* Objet du message. */
    protected String message_objet = " detail du sujet ";
    /** Destinataire du message en copie (CC). */
    protected String message_cc = "dest@hotmail.com";
    /** Texte du message. */
    protected String message_corps =
    "Bonjour dans une semaine vous recevrez de  " +
    "plus amples détails sur " +
    "le sujet de votre choix";
     
    /** Objet session de JavaMail. */
    protected Session session;
    /** Objet message de JavaMail. */
    protected Message mesg;
     
     
    public void envoyerMail() {
     
    // Nous devons passer les informations au serveur de messagerie sous
    // forme de propriétés car JavaMail en comporte beaucoup...
    Properties props = new Properties();
     
    // Votre réseau doit donner au serveur SMTP local le nom "nom_du_serveur_smtp"
     
    props.put("mail.smtp.host", "nom_du_serveur_smtp");
     
    // Créer l’objet Session.
    session = Session.getDefaultInstance(props, null);
    session.setDebug(true); //activer le mode verbeux !
     
    try {
    // Créer un message.
    mesg = new MimeMessage(session);
     
    // Adresse From - Indiquer la provenance du message
    mesg.setFrom(new InternetAddress("anonymous@service.domain"));
     
    // Adresse TO.
    InternetAddress toAddress = new InternetAddress(message_dest);
    mesg.addRecipient(Message.RecipientType.TO, toAddress);
     
    // Adresse CC.
    InternetAddress ccAddress = new InternetAddress(message_cc);
    mesg.addRecipient(Message.RecipientType.CC, ccAddress);
     
    // Objet.
    mesg.setSubject(message_objet);
     
    // Corps du message.
    mesg.setText(message_corps);
     
    // Enfin, envoyer le message !
    Transport.send(mesg);
     
    } catch (MessagingException ex) {
    while ((ex = (MessagingException)ex.getNextException()) != null) {
    ex.printStackTrace();
    }
    }
    }
    /** Programme principal*/
    public static void main(String[] av) {
    Envoi env = new Envoi();
    env.envoyerMail();
    }
    }
    Bonne chance

    Voilà, je suis débutant concernant le javamail, je vais faire une application java que je peut à la travers envoyer un mail de n'importe quel adresse (hotmail, yahoo, gmail, ...) et pour n'importe quel adresse, mais tous les exemples que j'ai déjà vu toujours utilisent un host prédéfinie (props.put("mail.smtp.host", "smtp.gmail.com")), est ce qu'il y a quelqu'un qui peut m'aider à le faire correctement?, Merci

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    Citation Envoyé par lion2080 Voir le message
    Voilà, je suis débutant concernant le javamail, je vais faire une application java que je peut à la travers envoyer un mail de n'importe quel adresse (hotmail, yahoo, gmail, ...) et pour n'importe quel adresse, mais tous les exemples que j'ai déjà vu toujours utilisent un host prédéfinie (props.put("mail.smtp.host", "smtp.gmail.com")), est ce qu'il y a quelqu'un qui peut m'aider à le faire correctement?, Merci
    (props.put("mail.smtp.host", "smtp.gmail.com")),
    dans cette partie tu dois indiquer le nom de votre serveur SMTP
    smtp.gmail.com est un exemple de serveur Smtp "gmail" vous pouvez utiliser d'autres serveurs
    personnellement j'utilise le serveur hMailServer il est gratuit ,facile pour la prise en main et offre des options très intéressantes.
    j'espère que j'ai répondu à ta question si non n'hésiter pas de revenir vers cette discussion.
    bonne chance

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut Java Mail
    Citation Envoyé par totoz Voir le message
    (props.put("mail.smtp.host", "smtp.gmail.com")),
    dans cette partie tu dois indiquer le nom de votre serveur SMTP
    smtp.gmail.com est un exemple de serveur Smtp "gmail" vous pouvez utiliser d'autres serveurs
    personnellement j'utilise le serveur hMailServer il est gratuit ,facile pour la prise en main et offre des options très intéressantes.
    j'espère que j'ai répondu à ta question si non n'hésiter pas de revenir vers cette discussion.
    bonne chance
    Merci totoz pour votre rapide réponse,
    En faite, j'ai une application qui contient beaucoup d'utilisateurs, chaque utilisateur à sa propre email, donc certainement je peut avoir plus qu'un serveur SMTP ( smtp.gmail.com, smtp.mail.yahoo.com, smtp.live.com, ...) dans l'adresse from, donc comment puis-je connaitre le bon serveur SMTP a partir de l'adresse mail?. D'autre part, est ce que je peut envoyer un mail sans authentification (bien sûr pour n'importe quel serveur)?.
    j'espère que j'ai clarifié un peut mon problème.
    Merci.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut
    Bonjour,
    je veux envoyé un mail a partir d'une application , j'ai essayé le code de Totoz .
    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
    import java.io.*;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
     
    public class Envoi {
     
    	/** Destinataire du message. */
    	protected String message_dest = "dest_boite@gmail.com";
    	/* Objet du message. */
    	protected String message_objet = " detail du sujet ";
    	/** Destinataire du message en copie (CC). */
    	protected String message_cc = "dest_boite@gmail.com";
    	/** Texte du message. */
    	protected String message_corps =
    	"Bonjour dans une semaine vous recevrez de  " +
    	"plus amples détails sur " +
    	"le sujet de votre choix";
     
    	/** Objet session de JavaMail. */
    	protected Session session;
    	/** Objet message de JavaMail. */
    	protected Message mesg;
     
     
    	public void envoyerMail() {
     
    	// Nous devons passer les informations au serveur de messagerie sous
    	// forme de propriétés car JavaMail en comporte beaucoup...
    	Properties props = new Properties();
     
    	// Votre réseau doit donner au serveur SMTP local le nom "nom_du_serveur_smtp"
     
    	Authenticator auth = new SMTPAuthenticator();
    	props.put("mail.smtp.host", "smtp.gmail.com");
    	session = Session.getDefaultInstance(props, auth);
     
    	// Créer l’objet Session.
    	session.setDebug(true); //activer le mode verbeux !
     
     
     
    	try {
    	// Créer un message.
    	mesg = new MimeMessage(session);
     
    	// Adresse From - Indiquer la provenance du message
    	mesg.setFrom(new InternetAddress("anonymous@service.com"));
     
    	// Adresse TO.
    	InternetAddress toAddress = new InternetAddress(message_dest);
    	mesg.addRecipient(Message.RecipientType.TO, toAddress);
     
    	// Adresse CC.
    	InternetAddress ccAddress = new InternetAddress(message_cc);
    	mesg.addRecipient(Message.RecipientType.CC, ccAddress);
     
    	// Objet.
    	mesg.setSubject(message_objet);
     
    	// Corps du message.
    	mesg.setText(message_corps);
     
    	// Enfin, envoyer le message !
    	Transport.send(mesg);
     
    	} catch (MessagingException ex) {
    	while ((ex = (MessagingException)ex.getNextException()) != null) {
    	ex.printStackTrace();
    	}
    	}
    	}
    	class SMTPAuthenticator extends javax.mail.Authenticator {
    	    public PasswordAuthentication getPasswordAuthentication() {
    	       String username = "un_compte_gmail@gmail.com";
    	       String password = "mot_de_passe";
    	       return new PasswordAuthentication(username, password);
    	    }
    	}
     
    	/** Programme principal*/
    	public static void main(String[] av) {
    	Envoi env = new Envoi();
    	env.envoyerMail();
    	}
    }
    il m'affiche une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DEBUG: setDebug: JavaMail version 1.3.2
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
    DEBUG SMTP: useEhlo true, useAuth false
    DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 25, isSSL false
    et je connais pas l'adresse SMTP de mon fai , y'a t il une solution ?


    j'ai installé HMailServer pour l'utiliser mais je ne sais pas comment adapter ce code avec HMailServer.

    merci pour votre aide

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par mimish Voir le message
    et je connais pas l'adresse SMTP de mon fai , y'a t il une solution ?
    La regarder sur son assistance en ligne.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut
    ok j'ai trouvez l'adresse SMTP de min Fai c'est :smtp.djaweb.com
    mais il m'affiche toujours l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DEBUG: setDebug: JavaMail version 1.3.2
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
    DEBUG SMTP: useEhlo true, useAuth false
    DEBUG SMTP: trying to connect to host "smtp.djaweb.com", port 25, isSSL false
    Exception in thread "main" java.lang.ClassCastException: java.net.ConnectException cannot be cast to javax.mail.MessagingException
    	at Envoi.envoyerMail(Envoi.java:68)
    	at Envoi.main(Envoi.java:84)

  10. #10
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Pour moi tu as une erreur sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while ((ex = (MessagingException)ex.getNextException()) != null) {
    	ex.printStackTrace();
    qui empêche de voir la véritable exception.

    Entre nous faut arrêter les boucles (ou la moquette faut voir) dans le catch, un simple ex.printStackTrace(); suffit amplement.

Discussions similaires

  1. [javamail] envoi mail avec message en pièce jointe
    Par k4eve dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 16/11/2007, 11h17
  2. [JavaMail] exception lors d'envoi d'un mail
    Par sovop dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 12/01/2007, 11h51
  3. JavaMail:Envoi de Mail
    Par gagalive dans le forum API standards et tierces
    Réponses: 21
    Dernier message: 28/06/2006, 17h53
  4. Problème lors de l'envoie d'un mail (JavaMail)
    Par Invité dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/05/2006, 10h23
  5. [javamail] pb lors de l'envoi d'un mail
    Par mawashee dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 08/09/2005, 16h50

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