Exchange サーバーが IMAP をサポートしている場合は、通常の JavaMail メカニズムを使用してそれに接続し、新しいメールをポーリングするか、(より良い) 次のようにサーバーに新しいメッセージをアプリにプッシュさせることができます (エラー処理は省略されています。多くの可能性があります)。残念ながらエラー状態...):
boolean finished = false
void setup() {
Properties props = new Properties()
props.setProperty("mail.store.protocol", "imaps")
Session session = Session.getDefaultInstance(props, null)
Store store = session.getStore("imaps")
store.connect("mailserver.example.com", "username", "password")
Folder inFolder = currentMailStore.getFolder("INBOX")
inFolder.open(Folder.READ_WRITE)
inFolder.addMessageCountListener(this)
while(!finished) {
inFolder.idle()
sleep(10000)
}
}
public void messagesAdded(MessageCountEvent e) {
for(Message m in e.messages) {
//...
}
}
新しいメッセージが到着するたびに、サーバーが(インターフェイスから) メソッドidle
を呼び出すという考え方です。messagesAdded
MessageCountListener