@Override public void execute(Pop3Connection conn, Pop3State state, String cmd) { try { MailFolder inbox = state.getFolder(); List<StoredMessage> messages = inbox.getNonDeletedMessages(); long size = sumMessageSizes(messages); conn.println("+OK " + messages.size() + " " + size); } catch (Exception me) { conn.println("-ERR " + me); } }
@Override public void execute(Pop3Connection conn, Pop3State state, String cmd) { try { MailFolder inbox = state.getFolder(); String[] cmdLine = cmd.split(" "); if (cmdLine.length < 3) throw new IllegalArgumentException("range and line count required"); String msgNumStr = cmdLine[1]; List<StoredMessage> msgList = inbox.getMessages(new MsgRangeFilter(msgNumStr, false)); if (msgList.size() != 1) { conn.println("-ERR no such message"); return; } StoredMessage msg = msgList.get(0); int numLines = Integer.parseInt(cmdLine[2]); try (BufferedReader in = new BufferedReader( new StringReader(GreenMailUtil.getWholeMessage(msg.getMimeMessage())))) { conn.println("+OK"); copyHeaders(in, conn); copyLines(in, conn, numLines); } conn.println("."); } catch (Exception e) { conn.println("-ERR " + e); } }
@Override public void execute(Pop3Connection conn, Pop3State state, String cmd) { try { MailFolder inbox = state.getFolder(); String[] cmdLine = cmd.split(" "); String msgNumStr = cmdLine[1]; List<StoredMessage> msgList = inbox.getMessages(new MsgRangeFilter(msgNumStr, false)); if (msgList.size() != 1) { conn.println("-ERR no such message"); return; } StoredMessage msg = msgList.get(0); if (msg.isSet(Flags.Flag.DELETED)) { conn.println("-ERR message already deleted"); return; } msg.setFlag(Flags.Flag.DELETED, true); conn.println("+OK message scheduled for deletion"); } catch (Exception e) { conn.println("-ERR " + e); } } }
@Override public void execute(Pop3Connection conn, Pop3State state, String cmd) { try { MailFolder folder = state.getFolder(); if (folder != null) { folder.expunge(); } conn.println("+OK bye see you soon"); conn.quit(); } catch (FolderException me) { conn.println("+OK Signing off, but message deletion failed"); conn.quit(); } } }
@Override public void execute(Pop3Connection conn, Pop3State state, String cmd) { try { MailFolder inbox = state.getFolder(); String[] cmdLine = cmd.split(" "); String msgNumStr = cmdLine[1]; List<StoredMessage> msgList = inbox.getMessages(new MsgRangeFilter(msgNumStr, false)); if (msgList.size() != 1) { conn.println("-ERR no such message"); return; } StoredMessage msg = msgList.get(0); String email = GreenMailUtil.getWholeMessage(msg.getMimeMessage()); conn.println("+OK"); conn.print(new StringReader(email)); conn.println(); conn.println("."); msg.setFlag(Flags.Flag.SEEN, true); } catch (Exception e) { conn.println("-ERR " + e); } } }
@Override public void execute(Pop3Connection conn, Pop3State state, String cmd) { conn.println("+OK"); try { MailFolder inbox = state.getFolder(); List<StoredMessage> msgList = inbox.getMessages(); int count = 0; for (StoredMessage msg : msgList) { if (msg.isSet(Flags.Flag.DELETED)) { count++; msg.setFlag(Flags.Flag.DELETED, false); } } conn.println("+OK maildrop has "+count+" messages undeleted."); } catch (Exception e) { conn.println("-ERR " + e); } } }
String cmd) { try { MailFolder inbox = state.getFolder(); String[] cmdLine = cmd.split(" "); List<StoredMessage> messages;
String cmd) { try { MailFolder inbox = state.getFolder(); String[] cmdLine = cmd.split(" "); if (cmdLine.length > 1) {