Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Membre habitué
    Inscrit en
    septembre 2008
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 260
    Points : 136
    Points
    136

    Par défaut Tester Javamail, envoi de mail avec attachment

    Salut,
    je voudrais tester javamail avec junit. Je crois que c'est possible via des mock, mais le concept ne m'est pas familier.

    Quelqu'un pourrait m'expliquer la demarche, ou me renvoyer vers un exemple. J'ai rien trouve de concluant pour l'instant,

    Merci

  2. #2
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro David Delbecq
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Nom : Homme David Delbecq
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Service public

    Informations forums :
    Inscription : avril 2007
    Messages : 21 772
    Points : 41 246
    Points
    41 246

    Par défaut

    C'est possible avec des Mocks, mais je trouve dumbster
    http://quintanasoft.com/dumbster/

    plus pratique. C'est un serveur smtp à démarrer depuis ton test unitaire. Tu le lance, il répond au protocol smtp, tu fais ton test et puis tu récupère les mail dans ce serveur

    Example du site:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public class SimpleSmtpServerTest extends TestCase {
    ...
      public void testSend() {
        SimpleSmtpServer server = SimpleSmtpServer.start();
     
        try {
          // Submits an email using javamail to the email server listening on port 25 
          // (method not shown here). Replace this with a call to your app logic.
          sendMessage(25, "sender@here.com", "Test", "Test Body", "receiver@there.com");
        } catch(Exception e) {
          e.printStackTrace();
          fail("Unexpected exception: "+e);
        }
     
        server.stop();
     
        assertTrue(server.getReceivedEmailSize() == 1);
        Iterator emailIter = server.getReceivedEmail();
        SmtpMessage email = (SmtpMessage)emailIter.next();
        assertTrue(email.getHeaderValue("Subject").equals("Test"));
        assertTrue(email.getBody().equals("Test Body"));	
      }
    ...  
    }
    Tchize (Чиз) faq java, cours java, javadoc. Pensez à et

  3. #3
    Membre éprouvé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    janvier 2005
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 356
    Points : 463
    Points
    463

    Par défaut

    salut
    pour ma part je me suis inspiré de ceci en utilisant mock-javamail

  4. #4
    Membre habitué
    Inscrit en
    septembre 2008
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 260
    Points : 136
    Points
    136

    Par défaut

    ok merci, je vais regarder ce que cela donne.

    dumbster a l'air sympa. Je connaissais pas.

    ca le fait en bidouillant l'exemple de mock javamail

  5. #5
    Membre actif Avatar de DrHelmut
    Homme Profil pro Hugo Capocci
    Directeur technique
    Inscrit en
    octobre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Nom : Homme Hugo Capocci
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 110
    Points : 191
    Points
    191

    Par défaut

    Bonjour,

    je profite du sujet car j'essaie désespérément d'utiliser mock-javamail sans succès...

    quoi que je fasse, je récupère une exception "javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;"

    Y-a-t-il un pré-requis non détaillé dans l'exemple du touilleur ? Je trouve peu de doc sur ce framework, et aucun exemple ne semble fonctionner...

    Je suis preneur de tout bout de code qui passe, pour info je suis en maven 3.04, j'ai testé mock-javamail v 1.7, et je suis en java 6...

    Merci d'avance !

  6. #6
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro David Delbecq
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Nom : Homme David Delbecq
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Service public

    Informations forums :
    Inscription : avril 2007
    Messages : 21 772
    Points : 41 246
    Points
    41 246

    Par défaut

    Tu peux essayer de changer de port, sur les système unix les ports inférieurs sont réservés à l'admin et des firewall peuvent aussi les bloquer.
    Tchize (Чиз) faq java, cours java, javadoc. Pensez à et

  7. #7
    Membre actif Avatar de DrHelmut
    Homme Profil pro Hugo Capocci
    Directeur technique
    Inscrit en
    octobre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Nom : Homme Hugo Capocci
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 110
    Points : 191
    Points
    191

    Par défaut

    Le problème ne vient pas du port dans la mesure ou - je ne l'avais pas précisé il est vrai - mes services d'envoi d'email fonctionnent parfaitement en mode connecté à un vrai smtp...

    le debug me renvoit les informations suivantes :

    DEBUG: setDebug: JavaMail version 1.4.3
    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 "localhost", port 25, isSSL false
    setter ehlo à false ne résoud rien, le problème ne viendrait pas de l'implémentation de javax.mail.Transport qui est retournée ? (com.sun.mail.smtp.SMTPTransport)
    je devrais avoir org.jvnet.mock_javamail.MockTransport en lieu en place... le fichier "javamail.providers" fourni dans le jar de mock-javamail n'est clairement pas pris en compte mais je ne sais pas pourquoi... grrr

    PS : Je suis sous win7 et j'ai bloqué le firewall de windaube

  8. #8
    Membre actif Avatar de DrHelmut
    Homme Profil pro Hugo Capocci
    Directeur technique
    Inscrit en
    octobre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Nom : Homme Hugo Capocci
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 110
    Points : 191
    Points
    191

    Par défaut

    Je sens bien le coup de la version de java.mail qui n'est pas prise en compte... ou le conflit maven relou à analyser..

    Bref. J'ai cherché ailleurs du coup et j'ai trouvé "Wiser" qui est à peu près équivalent et qui fonctionne lui très bien sur mon projet :p

    pour info : http://code.google.com/p/subethasmtp/wiki/Wiser

    maven :
    <dependency>
    <groupId>org.subethamail</groupId>
    <artifactId>subethasmtp-wiser</artifactId>
    <version>1.2</version>
    <scope>test</scope>
    </dependency>

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •