emailportlet.java

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

JAVA
1,760
字号
            Vector vFolders = (Vector) email.allFolders();
            if (vFolders != null)
            {

                context.put("vFolders", vFolders);
            }

            // vector of messages in one folder
            Vector message_folder = (Vector) getPortletSession(rundata, context, "message_folder");

            if (message_folder != null)
            {

                context.put("message_folder", message_folder);
            }

        }
        email.close();
        System.gc();

    }//end of buildNormalcontext

    public void doAuth(RunData data, Context context)
    {
        log.info("doAuth in emailportlet");
        Hashtable userInfo = this.getEmailUserInfo(data, context);

        String user = (String) userInfo.get("username");
        String pass = (String) userInfo.get("password");

        try
        {
            Email email = new Email(user, pass, getPortletParameters(data,
                    context));
            //log.info("after email");
            setPortletSession(data, context, "showFolders", "yes");
            setPortletSession(data, context, "hasLoggedIn", "yes");
            //always recheck the no. of new messages
            setPortletSession(data, context, "showNumNewmessages", null);
            setPortletSession(data, context, "showInbox", null);
            setPortletSession(data, context, "message_prompt", null);
            email.close();

        } catch (AuthenticationFailedException ae)
        {
            String message_prompt = "Authentication Failed... Bad LogIn.";
            setPortletSession(data, context, "hasLoggedIn", "no");
            setPortletSession(data, context, "message_prompt", message_prompt);
        } catch (NoSuchProviderException np)
        {
            String message_prompt = "Please Check Email parameters... Protocol(imap/pop3) is case-sensitive.";
            setPortletSession(data, context, "hasLoggedIn", "no");
            setPortletSession(data, context, "message_prompt", message_prompt);
        } catch (Exception e)
        {
            String message_prompt = e.getMessage();
            setPortletSession(data, context, "message_prompt", message_prompt);
            log.info("error : " + e.getMessage());
        }

        //checkMessages(data, user, pass);
    }

    public void doSignout(RunData data, Context context)
    {
        log.info("sign out");
        setPortletSession(data, context, "hasLoggedIn", "no");
        setPortletSession(data, context, "showFolders", "no");
        setPortletSession(data, context, "showInbox", "no");
        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, "message_prompt", null);
    }

    public void doCompose(RunData data, Context context) throws Exception
    {
        getEmailUserInfo(data, context);
        log.info("docompose");
        setPortletSession(data, context, "showFolders", "no");
        setPortletSession(data, context, "showInbox", "no");
        setPortletSession(data, context, "compose", "yes");
        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, "message_prompt", null);

    }

    //check if it's a new message
    public int checkNewmessage(Message message[], int current_index)
            throws Exception
    {
        log.info("### check new message");

        //get message Id to know if it's a new message
        String msgeId = getMessageId(message[current_index]);

        Criteria cr = new Criteria();
        cr.add(EmailInboxPeer.MESSAGE_ID, msgeId);

        List vMsge = EmailInboxPeer.doSelect(cr); //tdk2.2 version
        if (vMsge.isEmpty())
        { // message id not found in db
            return 1;
        } else
        { // message found in db but flag is set to 0

            EmailInbox email = (EmailInbox) EmailInboxPeer.doSelect(cr).get(0);
            //tdk2.2 version
            if (email.getReadflag() == 0)
            {
                return 1; // return 1 if new
            } else
                return 0;
        }
    }

    public void doSend(RunData data, Context context)
    {
        try
        {
            Hashtable userInfo = this.getEmailUserInfo(data, context);

            log.info("do send in email portlet");
            String user = (String) userInfo.get("username");
            String pass = (String) userInfo.get("password");

            String addressTo = data.getParameters().getString("addressTo");
            String addressFrom = data.getParameters().getString("addressFrom");
            setPortletSession(data, context, "addressFrom", addressFrom);

            String subject = data.getParameters().getString("subject");
            String msg = data.getParameters().getString("msg");
            FileItem fileItem = data.getParameters().getFileItem("newfile");

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

            email.doSendEmail(addressTo, addressFrom, subject, msg, fileItem);
            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("doSend()", e);
        }
    }

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

        log.info("doReply");

        setPortletSession(data, context, "showContent", "no");
        setPortletSession(data, context, "forward", "no");
        setPortletSession(data, context, "reply", "yes");
        
        Hashtable h = (Hashtable) getPortletSession(data, context, "hcontent");

        //get the subject
        String subject = (String) h.get("Subject").toString();

        //get the original message
        String msg = (String) h.get("message").toString();
        setPortletSession(data, context, "msg", "Original Message: " + "\n"
                + "From: " + h.get("From") + "\n" + "Subject: "
                + h.get("Subject") + "\n" + msg);

        //check if subject has a prefix "Re:"
        //if subject doesn't have a prefix "Re:", default as Re:Subject
        if (subject.length() > 3)
        {
            if (subject.substring(0, 3).equals("Re:"))
            {
                setPortletSession(data, context, "rsubject", subject);

            } else
            {
                setPortletSession(data, context, "rsubject", "Re:" + subject);
                log.info("subject" + subject);
            }
        } else
        {
            setPortletSession(data, context, "rsubject", "Re:" + subject);
        }
        setPortletSession(data, context, "msgeIndex", null);
    }

    public void doSendreply(RunData data, Context context)
    {
        String recipient = null;

        try
        {
            log.info("doSendReply");

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

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

            int current_index = Integer.parseInt(index);
            log.info("index" + current_index);

            String msg = (String) data.getParameters().getString("msg");
            log.info("reply message &&&&&&&&&&&&&&&& " + msg);
            setPortletSession(data, context, "msg", msg);
            //set the value of from
            
            String from = data.getParameters().getString("addressFrom");

            //set the value of addresTo
            //this will allow the user to change into new recipient
            String addressTo = data.getParameters().getString("addressTo");

            //set the value of subject
            String subject = data.getParameters().getString("subject");

            //set message
            msg = data.getParameters().getString("msg");

            String newmsge = checkFormat(msg);
            setPortletSession(data, context, "msg", newmsge);
            //check if the subject is not empty, else default as "none"
            if (subject.equals(""))
            {
                subject = "none";
            }

            //if subject doesn't have a prefix "Re:"
            // set the subject with prefix "Re:"
            if (subject.substring(0, 3).equals("Re:"))
            {
                setPortletSession(data, context, "rsubject", subject);
            } else
            {
                setPortletSession(data, context, "rsubject", "Re:" + subject);
            }

            String newSubj = (String)getPortletSession(data, context, "rsubject");
            msg = (String)getPortletSession(data, context, "msg");

            String msgecontent = convertMessage(msg);

            FileItem fileItem = data.getParameters().getFileItem(
                    "attachmentReply");

            Email email = new Email(user, pass, getPortletParameters(data,
                    context));
            //get the exact message
            Message message = email.getMessage(current_index);
            email.reply(from, addressTo, msgecontent, newSubj, fileItem,
                    message);
            email.close();

            String message_prompt = "Reply 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 doSendReply()", e);
        }
    }

    public void doForward(RunData data, Context context)
    {
        log.info("doforward");
        setPortletSession(data, context, "showContent", "no");
        setPortletSession(data, context, "reply", "no");
        setPortletSession(data, context, "createfolder", "no");
        setPortletSession(data, context, "forward", "yes");

        Hashtable h = (Hashtable) getPortletSession(data, context, "hcontent");

        //get subject
        String subject = (String) h.get("Subject").toString();
        log.info("subj in doforward" + subject);

        //check if the subject has a prefix "Fwd:"
        //if subject doesn't have a prefix "Fwd:", default as "Fwd:subject"
        if (subject.length() > 3)
        {
            if (subject.substring(0, 4).equals("Fwd:"))
            {
                setPortletSession(data, context, "rsubject", subject);
                log.info("subject" + subject);
            } else
            {
                setPortletSession(data, context, "rsubject", "Fwd:" + subject);
            }
        } else
        {
            setPortletSession(data, context, "rsubject", "Fwd:" + subject);
            log.info("subject" + subject);
        }

        //get the message
        String msg = (String) h.get("message").toString();
        setPortletSession(data, context, "msg", msg);
        setPortletSession(data, context, "msgeIndex", null);

    }

    public void doForwardsend(RunData data, Context context)
    {

        log.info("forwardsend");

        Hashtable userInfo = this.getEmailUserInfo(data, context);
        String user = (String) userInfo.get("username");
        String pass = (String) userInfo.get("password");
        String from = (String) userInfo.get("email");
        //set addressTo
        String to = data.getParameters().getString("addressTo");

        String index = (String)getPortletSession(data, context, "index");
        int current_index = Integer.parseInt(index);
        setPortletSession(data, context, "msgeIndex", null);
        try
        {
            // Set the from field

            // set subject
            String subject = data.getParameters().getString("subject");
            //check if subject is not empty, else default as "none"
            if (subject.equals(""))
            {
                subject = "none";
            }

            //check if subject has a prefix "Fwd:"
            //if subject doesn't hava a prefix "Fwd:",default as "Fwd:subject"
            if (subject.substring(0, 4).equals("Fwd:"))
            {
                //forward.setSubject(subject);
                setPortletSession(data, context, "rsubject", subject);
            } else

⌨️ 快捷键说明

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