2013-02-19 14 views
6

Oto mój kod do wysyłania e-mail:Jak wyłączyć java ślad poczty na konsoli podczas wysyłania wiadomości e-mail

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 
    } 

} 

Kiedy wysłać e-mail mam to wyjście na konsoli (lub catalina.out):

>>>>> Wysyłanie danych EHLO xxxxxx < < < < < <

>>>>> AUTH Wysyłanie danych LOGIN < < < < < <

>>>>> Wysyłanie danych xxxxxxxxxxxxxxxxxxxx < < < < < <

>>>>> Wysyłanie danych xxxxxxxxxxxxxx < < < < < <

>>>>> Wysyłanie danych POCZTA OD: < < < < < <

>>>>> Wysyłanie danych RCPT TO: < < < < < <

dane Dane >>>>> Wysyłanie < < < < < <

>>>>> Wysyłanie danych < < < < < <

>>> Wysyłanie danych. < < < < < <

>>>>> Wysyłanie danych QUIT < < < < < <

Jak mogę wyłączyć tę moc? Mój catalina.out rośnie zbyt szybko. Metoda Setdebug (false) nie rozwiązuje mojego problemu.

+3

Próbowałeś 'session.setDebug (false)'? –

+0

A może uruchamiasz aplikację z właściwością '-Dmail.debug = true'? - http://www.oracle.com/technetwork/java/faq-135477.html#debug – Augusto

+0

session.setDebug (false) nie rozwiązuje mojego problemu. Nie używam -Dmail.debug = true w mojej aplikacji tomcat. – user2086740

Odpowiedz

2

To nie ma nic wspólnego z setDebug metody!
Używałem wersji 1.40 biblioteki javax.mail i miałem dokładnie ten sam problem. Istnieje ta linia kodu System.out.println(">>>>>Sending data " + data + "<<<<<<"); w klasie SMTPTransport, która nie ma nic wspólnego z dziennikami debugowania i zawsze zapisuje dane w konsoli!

Po prostu przejdź do wersji 1.5 biblioteki, a problem zostanie rozwiązany.
Można go uzyskać od Maven repository.

5

Wiosną ten pracował dla mnie:

<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> 

testowane z wersji 1.4.7+