如何捕获从com.sun.mail.iap.Argument生成的String?

时间:2012-08-16 08:47:23

标签: java javamail

我正在尝试调试我的自定义javamail IMAPCommand

在构建发送到IMAP服务器的命令的过程中,我做了类似这样的事情:

public Object doCommand(IMAPProtocol p) throws ProtocolException {
Argument args = new Argument();

Argument sortCrit = new Argument();
sortCrit.writeString("REVERSE");
sortCrit.writeString("DATE");
args.writeArgument(sortCrit);

args.writeString("UTF-8");

Argument from1 = new Argument();
from1.writeString("FROM");
from1.writeString(searchFrom.get(0));

Argument from2 = new Argument();
from2.writeString("FROM");
from2.writeString(searchFrom.get(1));

fromArg.writeString("OR");
fromArg.writeArgument(from1);
fromArg.writeArgument(from2);

args.writeArgument(fromArg);

Response[] r = p.command("UID SORT", args);
Response response = r[r.length - 1];
[...]
}

我想记录(比如说stderr)将使用p.command发送到服务器的内容。我该怎么做?

2 个答案:

答案 0 :(得分:0)

从快速浏览一下,Protocol实现看起来有一些调试功能。 Create a Protocol with streams并传递true debug参数。

然后您应该看到此命令的输入和输出转储到System.out

答案 1 :(得分:0)

调用session.setDebug(true),您将在System.out上获得整个协议跟踪。这将显示您实际发送的内容。