if (mExpire < MIN_EXPIRE_DAYS) mExpire = MIN_EXPIRE_DAYS;
if (mExpire > 0 && mExpire < MIN_EXPIRE_DAYS) mExpire = MIN_EXPIRE_DAYS;
    private void doPASS(String password) throws Pop3CmdException, IOException, ServiceException {        if ((mTlsConnection == null) && !mServer.allowCleartextLogins())            throw new Pop3CmdException("only valid after entering TLS mode");                        if (mState != STATE_AUTHORIZATION)            throw new Pop3CmdException("this command is only valid in authorization state");                if (mUser == null)            throw new Pop3CmdException("please specify username first with the USER command");        if (password == null)            throw new Pop3CmdException("please specify a password");        if (password.length() > 1024)            throw new Pop3CmdException("password length too long");                try {            Provisioning prov = Provisioning.getInstance();                        Account acct = prov.getAccountByName(mUser);            if (acct == null)                throw new Pop3CmdException("invalid username/password");            if (!acct.getBooleanAttr(Provisioning.A_zimbraPop3Enabled, false))                throw new Pop3CmdException("pop access not enabled for account");                            prov.authAccount(acct, password);            mAccountId = acct.getId();            mAccountName = acct.getName();            Mailbox mailbox = Mailbox.getMailboxByAccountId(mAccountId);            mMbx = new Pop3Mbx(mailbox, mQuery);            mState = STATE_TRANSACTION;            mExpire = (int) (acct.getTimeInterval(Provisioning.A_zimbraMailMessageLifetime, 0) / (1000*60*60*24));            if (mExpire < MIN_EXPIRE_DAYS) mExpire = MIN_EXPIRE_DAYS;            sendOK("server ready");        } catch (AccountServiceException e) {            // need to catch and mask these two            if (e.getCode().equals(AccountServiceException.NO_SUCH_ACCOUNT) ||                e.getCode().equals(AccountServiceException.AUTH_FAILED)) {                throw new Pop3CmdException("invalid username/password");            } else if (e.getCode().equals(AccountServiceException.CHANGE_PASSWORD)) {                throw new Pop3CmdException("your password has expired");            } else if (e.getCode().equals(AccountServiceException.MAINTENANCE_MODE)) {                throw new Pop3CmdException("your account is having maintenance peformed. please try again later");            } else {                throw new Pop3CmdException(e.getMessage());            }        }    }