2013-02-19 26 views
6

Đây là mã của tôi để gửi email:Làm thế nào để vô hiệu hóa java email dấu vết trên bảng điều khiển khi gửi 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 
    } 

} 

Khi tôi gửi một email tôi nhận được kết quả này trên giao diện điều khiển (hoặc catalina.out):

>>>>> gửi dữ liệu EHLO xxxxxx < < < < < <

>>>>> gửi dữ liệu AUTH LOGIN < < < < < <

dữ liệu >>>>> Gửi xxxxxxxxxxxxxxxxxxxx < < < < < <

dữ liệu >>>>> Gửi xxxxxxxxxxxxxx < < < < < <

>>>>> gửi dữ liệu MAIL FROM: < < < < < <

>>>>> gửi dữ liệu RCPT TO: < < < < < <

>>>>> gửi dữ liệu dữ liệu < < < < < <

>>>>> gửi dữ liệu < < < < < <

>>>>> Gửi dữ liệu. < < < < < <

dữ liệu >>>>> Gửi QUIT < < < < < <

Làm thế nào tôi có thể vô hiệu hóa kết quả này? Catalina.out của tôi đang phát triển quá nhanh. Phương thức Setdebug (false) không giải quyết được vấn đề của tôi.

+3

Bạn đã thử 'session.setDebug (false)'? –

+0

Hoặc bạn có bắt đầu ứng dụng của mình với thuộc tính '-Dmail.debug = true' không? - http://www.oracle.com/technetwork/java/faq-135477.html#debug – Augusto

+0

session.setDebug (sai) không giải quyết được sự cố của tôi. Tôi không sử dụng -Dmail.debug = true trong ứng dụng tomcat của tôi. – user2086740

Trả lời

2

Không có gì để làm với phương thức setDebug!
Tôi đang sử dụng phiên bản 1.40 của thư viện javax.mail và gặp sự cố tương tự. Có System.out.println(">>>>>Sending data " + data + "<<<<<<"); dòng mã này trong lớp SMTPTransport không liên quan gì đến nhật ký gỡ lỗi và luôn ghi dữ liệu của nó trong bảng điều khiển!

Chỉ cần truy cập phiên bản 1.5 của thư viện và sự cố sẽ được giải quyết.
Bạn có thể lấy nó từ Maven repository.

5

Vào mùa xuân này làm việc cho tôi:

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

thử nghiệm với phiên bản 1.4.7+

Các vấn đề liên quan