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, accusé d'envoi et calcul de temps


Sujet :

API standards et tierces Java

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Javamail, accusé d'envoi et calcul de temps
    Bonjour à tous,
    je suis actuellement en stage et je programme une application JAVA qui apour objectif de faire des mesures de perf.
    Mon problème est le suivant:
    Je dois calculer le temps que met un serveur smtp pour envoyer un mail type.
    Pour l'instant mon programme marche trés bien mais je calcule le temps d'exécution en mesurant la différence entre le temps au début du programme et le temps à la fin.
    Mon problème vient du fait que je pense que ce temps correspond au temps que le programme met pour ajouter le mail à liste des mails du serveur Smtp et non pas le temps d'envoi réel.

    Ma question est : Qu'en pensez vous? Est ce que j'ai raison ou est ce réellement le temps d'envoi du mail.

    Sinon si j'ai raison est ce que vous auriez une technique pour attendre jusqu'à ce que le mail soit envoyé?

    Exemple de 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
    <div style="margin-left:40px">   public void launch() {
     
         try {
          startTimeToConnect = System.currentTimeMillis();   
          Properties props = System.getProperties();
          props.put("mail.smtp.auth", "true");
     
           // Get a Session object
          Session mailSession = Session.getDefaultInstance(props, null);
     
          // construct the message
          Message msg = new MimeMessage(mailSession);
          msg.setFrom(new InternetAddress(from));
     
           msg.setRecipients(Message.RecipientType.TO,
                            InternetAddress.parse(to, false));
     
           msg.setSubject(subject);
     
           msg.setText("Sample Message");
     
           msg.setHeader("X-Mailer", mailer);
     
           //Pour avoir un accusé. Ne marche pas
           //msg.setHeader("Disposition-Notification-To",from);
           //msg.setHeader("Return-Receipt-To",from);
           //
     
          msg.setSentDate(new Date());
     
          Transport tr  = mailSession.getTransport("smtp");
          tr.connect(smtphost, username, password);
          msg.saveChanges(); // don't forget this
          tr.sendMessage(msg, msg.getAllRecipients());
          tr.close();
     
           System.out.println("\nMail was sent successfully.");
           System.out.println (System.currentTimeMillis() - startTimeToConnect);
         }
         catch (Exception e) {
              e.printStackTrace();
         }
      }</div>
    Merci d'avance

    [ Modéré par Viena ]
    Ajout balises de code : Pensez aux balises [code], votre message est plus lisible et la lecture plus facile.

    Les Règles du Forum

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Ça dépend si tu veux calculer uniquement l'envoi, ou l'envoi + la création...
    Enfin, à la précision millisecond, ça ne doit pas changer d'un chouya

  3. #3
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Je pense que tu as raison, à mon avis, Javamail ne fait que dire au serveur Smtp d'envoyer le mail, pour lui, c'est fini dès le moment ou le serveur smtp a compris la demande. Donc avec ton code, je ne pense pas que tu calcules le temps de l'envoi, mais seulement le temps de la demande de javamail à ton smtp

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci à tous les deux pour vos réponses. Est ce que vous auriez une petite soluce utilisable pour mon problème ou est ce que vous pensez que c'est pas faisable?

    Merci encore d'avance

  5. #5
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Je sais pas trop si c'est faisable...

    Pour bien, il faudrait écouter sur le serveur smtp, mais bon là c'est plus du hack qu'autre chose...

    Ou alors ce que tu peut faire, c'est écouter la boîte mail dans laquelle le mail va arriver, mais là encore, je sais pas trop si c'est possible

  6. #6
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bon merci à tous, en voyant vos réponses et en demandant, il s'avèrerait que la seul solution serait de recréer directment une transaction avec le serveur mail distant en telnet.

    Encore merci.

    Ciao

Discussions similaires

  1. [11g] Calculer le temps que prend un envoi de mail
    Par all06 dans le forum SQL
    Réponses: 4
    Dernier message: 07/04/2014, 11h49
  2. Calcul du temps d'envoi d'un message entre deux téléphones
    Par rooma dans le forum Développement Mobile en Java
    Réponses: 1
    Dernier message: 04/11/2011, 10h48
  3. calculer le Temp écoulé
    Par ada_b dans le forum SQL
    Réponses: 1
    Dernier message: 30/11/2004, 09h44
  4. [MFC] : CTime ? Calcul de temps d'éxécution
    Par jonzuzu dans le forum MFC
    Réponses: 10
    Dernier message: 25/05/2004, 14h22
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

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