我正在寻找一个Java库,它可以帮助我使用IMAP,最好是空闲的。
我需要编写一个Java应用程序,这是通知和检索新的电子邮件使用SSL。该应用程序将检查由hMailServer托管的帐户的收件箱。
到目前为止,我已经了解到:
Apache Commons Imap,但它似乎没有实现IDLE。
JavaPushMail,但它没有充分的文档记录(我也许能够解决它,但我不确定我的继任者是否会像我一样高兴)。
Javamail,他们的IMAPFolder似乎是一个很好的选择,但我没有时间,为此编写一个稳定的库需要时间。
Chilkatsoft是一个199美元的库,它有点贵(我知道,免费和好的可靠代码总是很容易获得的:)另外,我不确定它是否能处理空闲。
我可以选择一种解决方案,如果收件箱记录在案并且稳定,就可以轮询收件箱。
我会很感激一些示例代码,一个库,或者在正确的方向上的推动。
很抱歉说了这么多“我”,并提前谢谢你。
发布于 2012-07-17 15:11:41
我继续使用Javamail。奇怪的是,还没有为它编写像样的包装器/客户端。好吧,好吧,不可能什么都有。谢谢你的回答康纳·谢尔曼。
发布于 2012-07-06 21:53:44
除了Javamail之外,我没有使用过您提到的任何库,但我可以保证。我必须编写一个应用程序来轮询exchange服务器并解析收件箱中的所有新邮件。下面是该项目中使用的代码片段。我做了所有的应用内轮询,所以我不会查看来自服务器或任何东西的推送通知。我知道这不完全是你所要求的,但我希望这是朝着正确的方向迈出的一步。
import java.util.Properties;
import javax.mail.*
import javax.mail.search.FlagTerm;
public class Driver {
public static void main(String[] args){
// Create properties (disable security checks on server)
Properties props = new Properties();
props.put("mail.imaps.ssl.checkserveridentity", "false");
props.put("mail.imaps.ssl.trust", "*");
// Get session
Session session = Session.getDefaultInstance(props, null);
try{
// Get the store
Store store = session.getStore("imaps");
store.connect("servername", "username", "password");
//connection configuration
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
//get all unread messages in the inbox
FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
Message[] messages = folder.search(ft);
for (int i = messages.length -1; i>=0; i--) {
messages[i].setFlag(Flags.Flag.SEEN, true);
}
// Close connection
folder.close(false);
store.close();
}
catch(Exception e){
}
}
}发布于 2016-08-06 04:39:01
我自己没有用过它,但是这个库看起来不错:
https://github.com/MailCore/mailcore2
MailCore 2提供了一种简单的异步应用编程接口来处理电子邮件协议IMAP、POP和SMTP。该应用程序接口已重新设计。
https://stackoverflow.com/questions/11362542
复制相似问题