Jakarta mail 使用POP3协议的Javamail:超过15个弹药的登录限制

Jakarta mail 使用POP3协议的Javamail:超过15个弹药的登录限制,jakarta-mail,pop3,Jakarta Mail,Pop3,我有一个从live mail获取邮件的代码。 我的步骤: 连接到服务器 打开文件夹 获取一些信息 关闭文件夹 关门 但有时我调用这个函数,我从服务器得到消息: ERR Exceeded the login limit for a 15 minute period. Reduce the frequency of requests to the POP3 server 那么我该如何解决这个问题呢。我关闭了连接并打开了新的。我没有保持连接,所以我为什么会出现这个错误 public b

我有一个从live mail获取邮件的代码。 我的步骤:

  • 连接到服务器
  • 打开文件夹
  • 获取一些信息
  • 关闭文件夹
  • 关门
但有时我调用这个函数,我从服务器得到消息:

 ERR Exceeded the login limit for a 15 minute period. Reduce the frequency of requests to the POP3 server
那么我该如何解决这个问题呢。我关闭了连接并打开了新的。我没有保持连接,所以我为什么会出现这个错误

    public boolean POPgetMail(final String EMAIL,final String PASS,final String Type,boolean isNewMail) {


               int NUMBER_MAIL=5;

               Message[] message_s = null;

                Properties props2 = System.getProperties();
                props2.setProperty("mail.store.protocol", "pop3s");
                Session session2 = Session.getInstance(props2, null);
                session2.setDebug(true);
                try {
                    Store store = session2.getStore("pop3s");
                    HOSTGET = "pop3.live.com";
                    store.connect(HOSTGET,EMAIL,PASS);  
                    Log.i("","Connect Success");
                    Folder folder = store.getFolder("INBOX");
                    folder.open(Folder.READ_ONLY);
                    int new_mail=0;                 
                    message_s = folder.getMessages();
                    int countMail =folder.getMessageCount() -1;
                    if(countMail<0) {
                        folder.close(true);
                        store.close();
                        return false;
                    }
                    Log.i("","Total Mail + "+ countMail);               
                    for (int i =countMail;i > NUMBER_MAIL;i--) 
                    {

                        Message message = message_s[i];
                        if(message != null)
                        {
                            Log.i("MAIL","LOading Mail ID = " + i);
                            String subject ="No Subject";
                            try {
                            subject=message.getSubject().toString();
                            }
                            catch(Exception e)
                            {
                                Log.i("XX",e.toString());
                            }
                          String contents="";

                          int ID =i;
                          Date Date = message.getSentDate();
                          String date = DatenTime.convertDate(Date);
                          Address[] froms = message.getFrom();
                          //get TO
                          String to="";
                         try {
                          Address[] tos = message.getRecipients(Message.RecipientType.TO);

                          if(tos!=null)
                          {
                              for (int j=0;j<tos.length;j++){
                                  to+=((InternetAddress)tos[j]).getAddress()  +";";
                                  Log.i("","TOOOOOOOO" + to);
                               }
                          }
                         }
                         catch (Exception e)
                         {
                             Log.i("",e.toString());
                         }
                         //get CC
                         Address[] toCC = message.getRecipients(Message.RecipientType.CC);
                         String CC="";
                         if(toCC!=null)
                          {
                              for (int j=0;j<toCC.length;j++){
                                  CC+=((InternetAddress)toCC[j]).getAddress()  +";";
                                  Log.i("","TOOOOOOOO" + CC);
                               }

                          String name = ((InternetAddress) froms[0]).toUnicodeString();
                          String from = ((InternetAddress) froms[0]).getAddress();
                              if(mDB.InsertEmailData(ID,EMAIL,name,from,to,CC,contents,subject,date,Define.INBOX)!=-1)
                              {
                                  System.out.println("get mail success");

                              }
                        }
                    }
                    folder.close(true);
                    store.close();
                    mDB.close();
                    return true;
                } catch (Exception e) {
                    Log.i("","EX " + e.toString());
                    return false;
                }   
}
public boolean POPgetMail(最终字符串电子邮件、最终字符串传递、最终字符串类型、布尔值isNewMail){
int NUMBER_MAIL=5;
Message[]Message_s=null;
Properties props2=System.getProperties();
props2.setProperty(“mail.store.protocol”、“pop3s”);
会话session2=Session.getInstance(props2,null);
session2.setDebug(true);
试一试{
Store Store=session2.getStore(“pop3s”);
HOSTGET=“pop3.live.com”;
store.connect(主机获取、电子邮件、通行证);
Log.i(“,”连接成功“);
Folder Folder=store.getFolder(“收件箱”);
文件夹。打开(文件夹。只读);
int new_mail=0;
message_s=folder.getMessages();
int countMail=folder.getMessageCount()-1;
if(countMail NUMBER\u MAIL;i--)
{
Message Message=Message_s[i];
如果(消息!=null)
{
Log.i(“邮件”,“加载邮件ID=“+i”);
String subject=“无主题”;
试一试{
subject=message.getSubject().toString();
}
捕获(例外e)
{
Log.i(“XX”,即toString());
}
字符串内容=”;
int ID=i;
日期=message.getSentDate();
字符串日期=DatenTime.convertDate(日期);
地址[]froms=message.getFrom();
//到达
字符串至“”;
试一试{
地址[]tos=message.getRecipients(message.RecipientType.TO);
如果(tos!=null)
{

对于(int j=0;j我猜您不理解错误消息。不是因为您将连接保持打开的时间太长,而是您在15分钟内建立了太多单独的连接。不要经常连接