1

message と呼ばれる新しい MimeMessage であるオブジェクトがあり、それが送信メール サーバーに何を渡しているかを調べたいと考えています。ただし、このような変数を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();
      }
  }

どんな助けでも大歓迎です。

ありがとう。

4

3 に答える 3

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();
}
于 2011-02-25T20:56:19.890 に答える
0

についてMimeMessageは、 を呼び出すことができますmessage.writeTo(System.out);message.saveChanges()一貫性を確保するために、呼び出し後にこれを実行することをお勧めします。

于 2011-02-25T20:58:02.773 に答える
0

toString()基本インターフェースを実装するデコレータ クラスを作成し、ラップされたクラス(または基本インターフェースが持つその他のメソッド)によって返されるすべてのログ/出力を作成できます。

于 2011-02-25T20:58:42.947 に答える