javaMail获取收件箱邮件之javax.mail.FolderNotFoundException

本文探讨了在使用JavaMail通过POP3和IMAP获取邮件时遇到的FolderNotFoundException问题。在情况一中,由于POP3下找不到Sent发件箱,建议切换到IMAP。而在情况二中,发现用户的IMAP账户初始只有收件箱,缺少其他如发件箱,可以通过发送一封邮件来尝试创建缺失的邮箱文件夹。
摘要由CSDN通过智能技术生成

情况一:通过pop3获取邮件

javax.mail.FolderNotFoundException: folder is not INBOX
	at com.sun.mail.pop3.POP3Folder.open(POP3Folder.java:205)
	at com.dascom.james.service.impl.MailServiceImpl.getFrom(MailServiceImpl.java:209)
	at com.dascom.james.controller.MailInfoController.receiveMail(MailInfoController.java:109)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498) 
	...
  • 说明:通过查看folder列表确实没有找到Sent发件箱fullname;
  • 查看方式:Folder folder[ ]=store.getDefaultFolder().list();
  • 解决办法:可以换成使用IMAP获取邮件

`javax.mail.NoSuchProviderException: imap`异常通常是因为JavaMail API找不到IMAP Provider提供者类。这可能是由于以下原因之一: 1. 缺少IMAP Provider依赖项。你需要确保已在你的构建路径中包含了`javax.mail`和`javax.mail.providers`包,以及IMAP Provider的实现类。你可以通过Maven或手动下载JavaMail API来获取这些依赖项。 2. IMAP Provider实现类名称不正确。你需要确保在你的代码中正确地指定了IMAP Provider实现类的名称。例如,如果你使用的是JavaMail API的默认实现类,你应该使用以下代码: ```java Properties props = new Properties(); props.setProperty("mail.store.protocol", "imap"); Session session = Session.getDefaultInstance(props); Store store = session.getStore(); ``` 如果你使用的是其他IMAP Provider实现类,你需要在`props.setProperty("mail.store.protocol", "imap")`语句中指定正确的实现类名称。 3. IMAP Provider实现类未正确注册。你需要在你的代码中明确地注册IMAP Provider实现类。例如,如果你使用的是IMAPStore实现类,你可以使用以下代码: ```java Properties props = new Properties(); props.setProperty("mail.store.protocol", "imap"); Session session = Session.getInstance(props, null); session.setProvider(new com.sun.mail.imap.IMAPProvider()); Store store = session.getStore(); ``` 这将显式地注册IMAPProvider实现类,并解决NoSuchProviderException异常。 希望这些信息能够帮助你解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人生没有等式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值