如何在发送电子邮件时禁用控制台上的Java邮件跟踪

use*_*740 6 java email debugging trace output

这是我发送电子邮件的代码:

    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
    }

}
Run Code Online (Sandbox Code Playgroud)

当我发送电子邮件时,我在控制台(或catalina.out)上获得此输出:

>>>>>发送数据EHLO xxxxxx <<<<<<

>>>>>发送数据AUTH LOGIN <<<<<<

>>>>>发送数据xxxxxxxxxxxxxxxxxxxx <<<<<<

>>>>>发送数据xxxxxxxxxxxxxx <<<<<<

>>>>>发送数据邮件来自:<<<<<<

>>>>>发送数据RCPT TO:<<<<<<

>>>>>发送数据DATA <<<<<<

>>>>>发送数据<<<<<<

>>>>>发送数据.<<<<<<

>>>>>发送数据QUIT <<<<<<

如何禁用此输出?我的catalina.out增长太快了.Setdebug(false)方法无法解决我的问题.

小智 7

在春天,这对我有用:

    <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>
Run Code Online (Sandbox Code Playgroud)

测试版本1.4.7+


Moh*_*eid 2

和方法无关setDebug
我使用的是 javax.mail 库的 1.40 版本,并且遇到了完全相同的问题。类中有这行System.out.println(">>>>>Sending data " + data + "<<<<<<");代码SMTPTransport与调试日志无关,并且始终将其数据写入控制台!

只需获取该库的 1.5 版本即可解决问题。您可以从Maven 存储库
获取它。