2011-02-25 70 views
1

我有一个对象,它是一个名为message的新MimeMessage,我想知道它传递给我的传出邮件服务器的内容。然而,我不知道如何用Java打印出这样的变量。这里有一些代码:在Java中打印变量值

private String sendConfirmationEmail (String to, String from, String subject, String body, boolean CCSender) { 
     try 
     { 
    //   String smtpHost = Properties.smtp; 
      String smtpHost = Properties.smtp;  
      String fromAddress = from; 
      String toAddress = to; 

      Properties properties = System.getProperties(); 
      properties.put("mail.smtp.host", smtpHost); 

      Session session = Session.getInstance(properties, null); 

      MimeMessage message = new MimeMessage(session); 

      message.setFrom(new InternetAddress(fromAddress)); 
      message.setRecipient(Message.RecipientType.TO, 
        new InternetAddress(toAddress)); 

      if (CCSender) { 
      message.setRecipient(Message.RecipientType.CC, 
        new InternetAddress(from)); 
      } 
      message.setSubject(subject); 
      message.setText(body); 

      System.out.println(message); <=== I want this to work! 

      message.saveChanges(); 
      Transport.send(message); 
      return "1:success"; 
     } 
     catch(Exception e) 
     { 
      return "0:failure "+e.toString(); 
     } 
    } 

任何帮助将不胜感激。

谢谢。

回答

0

对于MimeMessage,您可以拨打message.writeTo(System.out);。在拨打message.saveChanges()以确保一致性后,您可能会想要执行此操作。

6

如果这是你的,你会覆盖控制一类是toString()方法

如果你有没有对其进行控制,你必须写这样

String valueOf(Message message) { 
    StringBuilder sb = new StringBuilder(); 
    sb.append(message.someValue()); 
    sb.append(message.someOtherValue()); 
    return sb.toString(); 
} 

和使用方法在的valueOf你的调试信息

有关的MimeMessage,我会依靠它具有其内容的toString实现

String valueOf(Message message) { 
    return message.getContent().toString(); 
} 
0

您可以创建一个实现基本接口的装饰器类,并记录/打印封装类'toString()(或其他基础接口的其他方法)返回的所有内容。