emailportlet.java

来自「jetspeed源代码」· Java 代码 · 共 1,760 行 · 第 1/5 页

JAVA
1,760
字号
            {
                setPortletSession(data, context, "rsubject", "Fwd:" + subject);
            }
            String fsubject = (String)getPortletSession(data, context, "rsubject");

            //Set message content
            String content = data.getParameters().getString("msg");
            String msge = checkFormat(content);

            Email email = new Email(user, pass, getPortletParameters(data,
                    context));

            //get exact message
            Message message = email.getMessage(current_index);
            email.forward(to, from, fsubject, msge, message);
            email.close();

            String message_prompt = "Message Sent";
            setPortletSession(data, context, "message_prompt", message_prompt);
            setPortletSession(data, context, "msgeIndex", null);
        } catch (Exception e)
        {
            setPortletSession(data, context, "message_prompt",
                    "Message Sending Failed." + e.getMessage());
            log.error("Error in doForwardSend()", e);
        }
    }

    public void doDelete(RunData data, Context context)
    {
        log.info("delete");

        Hashtable userInfo = this.getEmailUserInfo(data, context);
        String user = (String) userInfo.get("username");
        String pass = (String) userInfo.get("password");

        String foldername = (String)getPortletSession(data, context, "folder_name");

        int current_index = 0;

        try
        {
            //delete
            String index = (String)getPortletSession(data, context, "index");
            Email email = new Email(user, pass, getPortletParameters(data,
                    context));

            String protocol = getPortletParameter(data, context, "protocol");

            //delete in showcontent
            if (index != null && !index.equals(""))
            {
                current_index = Integer.parseInt(index);
                if (protocol.equals("imap"))
                {
                    email.contentDelete(current_index, foldername, protocol);
                } else
                {
                    email.contentDelete(current_index);

                }

                setPortletSession(data, context, "message_prompt", "Deleted");
            }

            //multiple delete
            else
            {
                String[] checkboxes = null;
                checkboxes = data.getParameters().getStrings("check");
                if (checkboxes != null)
                {
                    if (protocol.equals("imap"))
                    {
                        email.checkboxDelete(foldername, checkboxes, protocol);
                        //email.close();
                    } else
                    {
                        email.checkboxDelete(checkboxes);

                    }

                    setPortletSession(data, context, "message_prompt",
                            "Deleted");
                } else
                {
                    setPortletSession(data, context, "message_prompt",
                            "Select message to be deleted.");
                }

            }
            email.close();
            log.info("deleted");
            setPortletSession(data, context, "showContent", "no");
            setPortletSession(data, context, "showInbox", "yes");
            setPortletSession(data, context, "msgeIndex", null);
        } catch (Exception e)
        {
            setPortletSession(data, context, "message_prompt",
                    "Delete Failed. " + e.getMessage());
            log.error("Error in doDelete()", e);

        }
    }

    public void doShowcontent(RunData data, Context context,Email email) throws Exception
    {

        log.info("show content");
        String AttachmentName = null;
        Vector vAttachments = new Vector();
        Message message = null;
        Hashtable userInfo = this.getEmailUserInfo(data, context);
        String user = (String) userInfo.get("username");
        String pass = (String) userInfo.get("password");

        String folderMode = (String)getPortletSession(data, context, "folderMode");

        Vector vContent = new Vector();

        String protocol = getPortletParameter(data, context, "protocol");

        String index = (String)getPortletSession(data, context, "index");

        String folder_name = (String)getPortletSession(data, context, "folder_name");

        int current_index = Integer.parseInt(index);

        if (folderMode.equals("inboxFolder") || (protocol.equals("pop3")))
        {
            message = email.getMessage(current_index);
        } else
        {
            message = email.getMessage(current_index, folder_name);
            Folder current_folder = email.getFolder(folder_name);

        }

        String subject = email.getSubject(message);
        String from = email.getFrom(message);

        // POP3 does not provide a "received date", so the getReceivedDate
        // method will
        // return null. It may be possible to examine other message headers
        // (e.g., the "Received" headers) to estimate the received date,
        // but these techniques are error-prone at best.
        String date = null;

        Vector vAddr = email.getTo(message);
        String messageContent = email.getMessageContent(message);

        if (!message.isMimeType("text/plain"))
        {
            boolean hasAtt = email.checkAttachment(message);
            if (hasAtt == true)
            {
                AttachmentName = email.getAttachmentname(message);
                log.info("attachmentName" + AttachmentName);
                vAttachments = email.getAttachments(message);
                log.info("vAttachments " + vAttachments.size());
            }
        }

        if (protocol.equals("pop3"))
        {
            context.put("protocol", "pop3");

        } else if (protocol.equals("imap"))
        {
            date = email.getReceivedDate(message);
            context.put("protocol", "imap");
        }

        //check if there's a subject... else default as "none"
        if ((subject == null) || (subject.equals("")))
        {
            subject = "none";
            log.info("subj" + subject);
        }

        Hashtable hcontent = new Hashtable();
        // Store Message Id into context : RJPY
        hcontent.put("MessageId", getMessageId(message));

        hcontent.put("From", from);
        hcontent.put("Subject", subject);
        if (protocol.equals("imap"))
        {
            hcontent.put("ReceivedDate", date);
        }

        hcontent.put("message", messageContent);

        if (AttachmentName != null)
                hcontent.put("AttachmentName", AttachmentName);

        vContent.add(hcontent);
        //set message as Old
        setMessageflag(message);

        setPortletSession(data, context, "hcontent", hcontent);
        setPortletSession(data, context, "inContent", vContent);

        context.put("inContent", vContent);
        context.put("vAddr", vAddr);
        context.put("vAttachments", vAttachments);


    }

    public void doShow(RunData data, Context context) throws Exception
    {
        log.info("show");
        setPortletSession(data, context, "showInbox", "no");
        setPortletSession(data, context, "showContent", "yes");
        setPortletSession(data, context, "msgeContent", "yes");
        setPortletSession(data, context, "createfolder", "no");
        setPortletSession(data, context, "showmessagefolder", "no");

        //get the index of the message chosen by the user
        String index = (String) data.getParameters().getString("index");
        //get folderMode; to know what folder to open
        String folderMode = (String) data.getParameters().getString(
                "folderMode");

        setPortletSession(data, context, "index", index);
        setPortletSession(data, context, "folderMode", folderMode);

    }

    public void doInbox(RunData data, Context context) throws Exception
    {

        int cur_page = 1;
        int range_per_page = maxPerPage - 1;
        int start_index = 0;
        int total_no_of_pages = 0;

        //reset the value of index
        setPortletSession(data, context, "index", null);
        setPortletSession(data, context, "message_prompt", null);

        //for multiple pages
        setPortletSession(data, context, "cur_page", String.valueOf(cur_page));
        setPortletSession(data, context, "range_per_page", String
                .valueOf(range_per_page));
        setPortletSession(data, context, "start_index", String
                .valueOf(start_index));
        setPortletSession(data, context, "total_no_of_pages", String
                .valueOf(total_no_of_pages));
        setPortletSession(data, context, "showFolders", "no");
        setPortletSession(data, context, "showInbox", "yes");
        setPortletSession(data, context, "compose", "no");
        setPortletSession(data, context, "showContent", "no");
        setPortletSession(data, context, "reply", "no");
        setPortletSession(data, context, "forward", "no");
        setPortletSession(data, context, "createfolder", "no");
        setPortletSession(data, context, "showmessagefolder", "no");
        setPortletSession(data, context, "folder_name", "INBOX");

        Hashtable userInfo = this.getEmailUserInfo(data, context);
        String user = (String) userInfo.get("username");
        String pass = (String) userInfo.get("password");

        //always recheck the no. of new messages
        setPortletSession(data, context, "showNumNewmessages", null);

        setPortletSession(data, context, "inboxMessages", "yes");
        setPortletSession(data, context, "msgeIndex", null);

    }

    public void checkMessages(RunData data, Context context, Email email) throws Exception
    {

        String start_index1 = (String)getPortletSession(data, context, "start_index");

        String range_per_page1 = (String)getPortletSession(data, context,
                "range_per_page");
        String cur_page1 = (String)getPortletSession(data, context, "cur_page");
        String total_no_of_pages1 = (String)getPortletSession(data, context,
                "total_no_of_pages");
        int start_index = Integer.parseInt(start_index1);
        int range_per_page = Integer.parseInt(range_per_page1);
        int cur_page = Integer.parseInt(cur_page1);
        int total_no_of_pages = Integer.parseInt(total_no_of_pages1);
        
        try
        {
            Hashtable userInfo = this.getEmailUserInfo(data, context);
            String user = (String) userInfo.get("username");
            String pass = (String) userInfo.get("password");
            Vector vMessages = null;
            int msgectr = email.getNo_of_messages();

            setPortletSession(data, context, "msgcount", String
                    .valueOf(msgectr));

            //check if more than 1 page
            if (msgectr > maxPerPage)
            {

                //get the total no. of pages
                if ((msgectr % 10) == 0)
                {
                    total_no_of_pages = (msgectr / 10);
                    setPortletSession(data, context, "total_no_of_pages",
                            String.valueOf(total_no_of_pages));
                    log.info("total pages" + total_no_of_pages);
                    setPortletSession(data, context, "cur_page", String
                            .valueOf(cur_page));
                    log.info("cur_page" + cur_page);
                } else
                {
                    total_no_of_pages = ((msgectr / 10) + 1);
                    setPortletSession(data, context, "total_no_of_pages",
                            String.valueOf(total_no_of_pages));
                    log.info("total pages" + total_no_of_pages);
                    setPortletSession(data, context, "cur_page", String
                            .valueOf(cur_page));
                    log.info("cur_page" + cur_page);
                }
            }
            setPortletSession(data, context, "start_index", String
                    .valueOf(start_index));

            setPortletSession(data, context, "range_per_page", String
                    .valueOf(range_per_page));


            range_per_page1 = (String)getPortletSession(data, context,
                    "range_per_page");

            String protocol = getPortletParameter(data, context, "protocol");
            if (protocol.equals("pop3"))
            {
                context.put("protocol", "pop3");
            } else if (protocol.equals("imap"))
            {
                context.put("protocol", "imap");
            }

            Vector vAscmessages = email.openInbox(protocol);
            // all messages in ascending order

            int msgeIndexnum = 0; // initial message index per page
            String msgeIndexstring = (String)getPortletSession(data, context,
                    "msgeIndex");
            msgeIndexnum = vAscmessages.size();
            if (msgeIndexstring == null || msgeIndexstring.equals(""))
            {
                setPortletSession(data, context, "msgeIndex", String

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?