public void updateAccount( Account account, String newFolderHash, int newMessages, int folderDepth, Date lastMessageReceivedDate) throws DALException { account.setFolder_hash(newFolderHash); // reset login failures - since update account happens on successful mail fetch account.setLogin_failures(0); account.setLast_login_failure(null); account.setMessage_count(account.getMessage_count() + newMessages); account.setLast_mailcheck(new Date(System.currentTimeMillis())); account.setFolder_depth(folderDepth); if (lastMessageReceivedDate == null) { DALDominator.updateAccountReceiveInfo(account); } else { account.setLast_received_date(lastMessageReceivedDate); DALDominator.updateAccountReceiveInfoAndReceivedDate(account); } }
/** * Deliveres notification to the user that an email has been dropped. Typically due to size * restriction * * @param account * @param messageNumber * @param message * @throws Exception */ public void saveMessageDroppedNotification( Account account, int messageNumber, Message message, int reportedSize) throws Exception { MessageParser parser = new MessageParser(); Email email = new Email(); email.setSubject( "Your email"); // ReceiverUtilsTools.subSubject(parser.parseMsgSubject(message), // subjectSize)); email.setFrom(parser.parseMsgAddress(message, "FROM", false)); email.setTo(ReceiverUtilsTools.subAddress(parser.parseMsgAddress(message, "TO", true))); email.setCc(ReceiverUtilsTools.subAddress(parser.parseMsgAddress(message, "CC", true))); email.setBcc(ReceiverUtilsTools.subAddress(parser.parseMsgAddress(message, "BCC", true))); email.setMaildate(ReceiverUtilsTools.dateToStr(message.getSentDate())); email.setStatus("0"); email.setUserId(account.getUser_id()); email.setMessage_type("EMAIL"); Body body = new Body(); String droppedMessage = getEmailDroppedMessage(account, getMessageDate(message), reportedSize, email.getFrom()); body.setData(droppedMessage.getBytes()); email.setBodySize(droppedMessage.length()); int saveStatus = DALDominator.newSaveMail(account, email, body); if (log.isDebugEnabled()) log.debug( String.format( "[%s] msgNum=%d, saving completed for dropped message with status %s", account.getName(), messageNumber, saveStatus)); }
public void handleLoginFailures(String context, Account account) throws DALException { account.setLast_mailcheck(new Date(System.currentTimeMillis())); if (account.getLogin_failures() == null) { account.setLogin_failures(1); } else { account.setLogin_failures(account.getLogin_failures() + 1); } account.setLast_login_failure(new Date(System.currentTimeMillis())); DALDominator.updateAccountReceiveInfo(account); if (shouldSendAccountLockedNotification(account)) { notifyAccountLock(account, context); sendAccountLockedNotificationEm(account); } }