6 votes

Comment désactiver la trace du courrier java sur la console lors de l'envoi d'un courriel

Voici mon code pour envoyer un email :

    public void sendMail() 
{
    try
    {
        // Propiedades de la conexión
        Properties props = new Properties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", SMTP_HOST_NAME);
        props.put("mail.smtp.port", SMTP_PORT);
        props.put("mail.smtp.auth", "true");

        Authenticator auth = new SMTPAuthenticator();
        Session mailSession = Session.getDefaultInstance(props, auth);

        Transport transport = mailSession.getTransport();

        MimeMessage message = new MimeMessage(mailSession);
        Multipart multipart = new MimeMultipart("alternative");

        BodyPart text = new MimeBodyPart();
        text.setContent(mailMessage,"text/html; charset=UTF-8");

        multipart.addBodyPart(text);

        message.setContent(multipart);

        if(friendlyName != null){
            //String send = friendlyName + " <" + sender + ">";
            message.setFrom(new InternetAddress(sender, friendlyName)); 
        }else{
            message.setFrom(new InternetAddress(sender));
        }

        message.setSubject(subject,"UTF-8");
        message.addRecipient(Message.RecipientType.TO,
                new InternetAddress(receiver));

        transport.connect();
        transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
        transport.close();

    }catch (Exception e) {
        // TODO: handle exception
    }

}

Lorsque j'envoie un courriel, j'obtiens cette sortie sur la console (ou catalina.out) :

>>>>>Envoi de données EHLO xxxxxx<<<<<<

>>>>>Envoi de données AUTH LOGIN<<<<<<

>>>>>Envoi de données xxxxxxxxxxxxxxxxxxxx<<<<<<

>>>>>Envoi de données xxxxxxxxxxxxxx<<<<<<

>>>>>Envoi de données MAIL FROM : <<<<<<

>>>>>Envoi de données RCPT TO : <<<<<<

>>>>>Envoi de données DATA<<<<<<

>>>>>Envoi de données <<<<<<

>>>>>Envoi de données .<<<<<<

>>>>>Envoi de données QUIT<<<<<<

Comment puis-je désactiver cette sortie ? Mon catalina.out grossit trop vite. La méthode Setdebug(false) ne résout pas mon problème.

7voto

axetroll Points 189

Au printemps, cela a fonctionné pour moi :

    <property name="javaMailProperties">
        <props>
            <prop key="mail.transport.protocol">smtp</prop>
            <prop key="mail.smtp.auth">false</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.debug">false</prop>
        </props>
    </property>

Testé avec les versions 1.4.7+.

2voto

Cela n'a rien à voir avec setDebug méthode !
J'utilisais la version 1.40 de la bibliothèque javax.mail et j'avais exactement le même problème. Il y a ceci System.out.println(">>>>>Sending data " + data + "<<<<<<"); ligne de code dans le SMTPTransport qui n'a rien à voir avec les journaux de débogage et qui écrit toujours ses données dans la console !

Il suffit d'aller chercher la version 1.5 de la bibliothèque et le problème sera résolu.
Vous pouvez l'obtenir auprès de Référentiel Maven .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X