java - 使用 javax.mail.Folder.getMessages() 获取邮件失败
问题描述
我曾经javax.mail
收到过邮件,但什么也没收到。
private void init(Properties prop) {
log.info("Initializing. ");
Session session = Session.getDefaultInstance(prop);
try {
store = session.getStore(protocol);
} catch (NoSuchProviderException e){
log.error("Failed to initialize! " + e);
e.printStackTrace();
return;
}
try {
store.connect(host, username, password);
folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
} catch (AuthenticationFailedException e){
log.error("Failed to login. ");
e.printStackTrace();
} catch (MessagingException e){
log.error("Cannot connect to the host. ");
e.printStackTrace();
}
}
在这里我确定邮箱可以正确连接。
public Message[] receiveMessages(Date start, Date end){
log.info("Getting mails from " + start + " to " + end + " it's " + ((end.getTime() - start.getTime()) / 1000) + "seconds. ");
Message[] messages = null;
SearchTerm termStart = new SentDateTerm(ComparisonTerm.GT, start);
SearchTerm termEnd = new SentDateTerm(ComparisonTerm.LE, end);
SearchTerm term = new AndTerm(termStart, termEnd);
try{
messages = folder.search(term);
log.info("Got " + messages.length + " mail(s)");
} catch (MessagingException e){
log.error("Failed to get mails. ");
e.printStackTrace();
}
return messages;
}
这里,messages.length
是0
。但是在指定的时间内,邮箱中有一些邮件。
2020-05-13 15:54:32.287 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.util.MailConfigXML : Initializing.
2020-05-13 15:54:32.349 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.config.XMLToMailConfig : Get users = helong
2020-05-13 15:54:32.349 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.config.XMLToMailConfig : Get users = wanghai
2020-05-13 15:54:32.349 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.config.XMLToMailConfig : Get users = zhuhaishan
2020-05-13 15:54:32.349 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.util.MailConfigXML : Try to connect to mailbox: security_device@bmac.sec。
2020-05-13 15:54:32.350 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.util.MailConfigXML : users = [helong, wanghai, zhuhaishan]
2020-05-13 15:54:32.350 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.util.MailConfigXML : Initializing.
2020-05-13 15:54:32.369 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.job.GetMailAndProcess : agentId = 1000059
2020-05-13 15:54:32.369 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.util.MailConfigXML : Getting mails from Wed May 13 15:51:30 CST 2020 to Wed May 13 15:54:32 CST 2020, it's 181 seconds.
2020-05-13 15:54:32.374 INFO 3878 --- [pool-1-thread-1] c.u.mailOrder.util.MailConfigXML : Got 0 mail(s).
我试过其他邮箱,发现那些主机可以收到邮件并处理它们。
我想知道这可能是什么原因造成的?是否是邮箱主机问题?如何避免收到0邮件?
解决方案
推荐阅读
- python - If else with an and 条件不执行底层语句
- c# - 单击未调用的 UICollectionViewCell 中的特定元素(而是从 Source 触发的 ItemSelected)Xamarin.ios
- php - geoip_record_by_name 始终返回 null
- rxjs - 使用 Rxjs 将多个文件上传到 sftp 服务器
- python - 从 Iron Python 脚本中创建了一个 spk,但是当我执行它时出现错误:'NameError: global name 'Application' is not defined'
- python - 十进制(0.19)会导致很长的数字?
- jquery - How to inverse GSAP animation
- crashlytics - Crashlytics Generate Symbols gradle 步骤失败:GC Overhead Limit Exceeded
- java - 我无法阅读邮件内容
- heroku - How to correctly configure Heroku Custom Domain