初めてJavaMailを使用しようとしています。詳細を入力すると、(接続されているかのように)実際に印刷されますが、フォルダを見つけようとすると機能しません。最初のループからのif文でJavamailが接続されていない
private static void login() throws MessagingException {
String host = "imap.gmail.com";
String username = "[email protected]";
String password = "password";
Properties props = new Properties();
props.setProperty("mail.imap.ssl.enable", "true");
props.setProperty("mail.store.protocol", "imaps");
session = Session.getInstance(props);
store = session.getStore("imaps");
store.connect(host, 993, username, password);
System.out.println(store.isConnected()); //THIS HERE RETURNS TRUE
}
public static void check()
{
try {
//create the folder object and open it
Folder emailFolder = store.getFolder("INBOX"); //ENDS PROGRAM LOGGING, "Not Connected"
emailFolder.open(Folder.READ_ONLY);
javax.mail.Message[] messages = emailFolder.getMessages();
for (int i = 0, n = messages.length; i < n; i++) {
javax.mail.Message message = messages[i];
if(message.getSubject().contains("Optimism") && message.getSubject().contains("New reply to watched thread")) {
for(Guild g : jda.getGuilds()) {
if(g.getName().equalsIgnoreCase("Optimism"))
for (TextChannel c : g.getTextChannels())
if (c.getName() == "staff_chat") {
c.sendMessage("**New Thread Reply! - " + new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new Date()) + " EST.").queue();
}
}
}
}
//close the store and folder objects
emailFolder.close(false);
store.close();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
Everthingすべてが
動作注記:チェック方法は、すべて2分と呼ばれているとしてそれは二つの方法であります。
ここでは 'jda'とは何ですか?この問題があるかもしれません – Sanjeev
'check()'メソッドで 'println(store.isConnected())'を実行するとどうなりますか? – Andreas
@Sanjeev jdaは、私が不和のために使っている別のAPIの一部です(あなたはそれを聞いたことがあります)。 – JackChap77