1
私はJavaプログラムをコーディングして、JavaのPOP3folderからメッセージのUIDを取得しました。 uidは常にnullです。私のコードのPOP3FolderからのメッセージのUIDは常にnullです
垣間見るがある
、String protocol="pop3";
Properties props = new Properties();
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
props.setProperty("mail.pop3.socketFactory.class",SSL_FACTORY);
props.setProperty("mail.pop3.socketFactory.fallback","false");
props.setProperty("mail.pop3.socketFactory.port",popPort);
props.setProperty("mail.pop3.port", popPort);
props.setProperty("mail.debug","true");
Session session = Session.getDefaultInstance(props,null);
store = session.getStore(protocol);
store.connect(popServer,Integer.parseInt(popPort),userName,passwd);
folder = ((POP3Store)store).getFolder("INBOX");
folder.open(Folder.READ_WRITE);
Message[] msgs = folder.getMessages(1,1);
String uid = ((POP3Folder)folder).getUID(msgs[0]);
このUIDがヌルとして返されます。
IはPOP3FolderのGETUID方法を読み取り、UIDLサポートがPOP3Storeに利用できないことを見出し、コードはPOP3Store supportsUidlで
public synchronized String getUID(Message msg) throws MessagingException {
checkOpen();
POP3Message m = (POP3Message)msg;
try {
if (!((POP3Store)store).supportsUidl)
return null;
}
getPortメソッドにprotocalの能力によって変更されています、
p = new Protocol(host, portNum, session.getDebug(),
session.getDebugOut(), session.getProperties(), "mail." + name,
isSSL);
capabilities = p.getCapabilities();
supportsUidl = capabilities == null|| capabilities.containsKey("UIDL");
私にUIDを取得するための解決策を提案してください。
javaxmail 1.5.7 DEBUGのPOP3使用して、私が得たデバッグプリントを以下に示します。mail.pop3.disabletop:偽 DEBUGのPOP3:mail.pop3.apop.enable:偽 DEBUGのPOP3:mail.pop3.disablecapaを:false DEBUG POP3:ホスト "pop.zoho.com"に接続しています。ポート995はSSLです。 + OK POP3 mx.zohomail.com v1.0サーバー準備中<[email protected]> CAPA + OK ユーザー 。 DEBUGのPOP3:サーバーはそれを無効にし、TOPをサポートしていません DEBUGのPOP3:NOOP S:+ OK UIDが –
は、デバッグ出力のフォーマットがあるnullの認証コマンド Cを成功:認証コマンドトレースが DEBUG POP3を抑えますあなたのコメントに間違ったものがある場合は、質問を編集して追加する方が良いでしょう。 JavaMail 1.5.7はありませんので、実際に使っているバージョンがわかりません。最近のバージョンには、デバッグ出力にバージョン番号が含まれています。また、 "C:"と "S:"デバッグ出力は非常に古いバージョンのJavaMailからのものです。それはプロトコルの出力のすべての行になければならないので、私は何が起こっているのか分からない。それでも、私が見るところでは、サーバがUIDをサポートしていないことは明らかであり、JavaMailがそのことについて何もできることはありません。 –
JavaMailの最新の一貫性のあるバージョンを使用していることを確認してください。非常に古いバージョンを使用している可能性があります。 –