emailportlet.java

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

JAVA
1,760
字号

        log.info("checkmessages ---------");
        //   checkMessages(data,context);

        // store.close();
    }

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

        //view previous page

        log.info("doPrevious");
        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 msgeIndex1 = (String)getPortletSession(data, context, "msgeIndex");

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

        int start_index = Integer.parseInt(start_index1);
        int range_per_page = Integer.parseInt(range_per_page1);
        int cur_page = Integer.parseInt(cur_page1);
        int msgeIndex = Integer.parseInt(msgeIndex1);

        start_index = start_index - maxPerPage;
        range_per_page = range_per_page - maxPerPage;
        msgeIndex = msgeIndex + 10;
        log.info("msgeIndex in previous " + msgeIndex);
        setPortletSession(data, context, "start_index", String
                .valueOf(start_index));
        setPortletSession(data, context, "range_per_page", String
                .valueOf(range_per_page));
        cur_page = cur_page - 1;
        setPortletSession(data, context, "cur_page", String.valueOf(cur_page));

        setPortletSession(data, context, "msgeIndex", String
                .valueOf(msgeIndex));
        setPortletSession(data, context, "inboxMessages", "yes");

    }

    /*-----------------------------------------------------------------------------------------*
     *  Downloads mail attachment from database using the message id as the key : RJPY
     *-----------------------------------------------------------------------------------------*/

    public void doDownload(RunData data)
    {

        log.info("[RJPY] Downloading Attachment");

        String messageid = data.getParameters().getString("messageid");
        String filename = data.getParameters().getString("filename");

        try
        {
            log.info("inside try in download");
            HttpServletResponse m_response = data.getResponse();

            Criteria crit = new Criteria();
            crit.add(EmailInboxPeer.MESSAGE_ID, messageid);
            List vMsge = EmailInboxPeer.doSelect(crit);

            if (vMsge.isEmpty())
            { // message id not found in db
                return;
            } else
            { // message found in db but flag is set to 0
                EmailInbox email = (EmailInbox) EmailInboxPeer.doSelect(crit)
                        .get(0);
                byte b[] = email.getAttachment();
                m_response.setContentType("application/x-msdownload");
                m_response.setContentLength(b.length);
                m_response.setHeader("Content-Disposition",
                        "attachment; filename="
                                .concat(String.valueOf(filename)));
                m_response.getOutputStream().write(b, 0, b.length);
            }

        } catch (Exception e)
        {
            log.error("Error in doDownload()", e);
        }
    }

    public void DBdelete(RunData data, int current_index, Context context)
            throws Exception
    {
        Hashtable userInfo = this.getEmailUserInfo(data, context);
        String user = (String) userInfo.get("username");
        String pass = (String) userInfo.get("password");

        Email email = new Email(user, pass, getPortletParameters(data, context));
        Message message = email.getMessage(current_index);
        String messageId = email.getMessageId(message);
        email.close();

        Criteria crit = new Criteria();
        crit.add(EmailInboxPeer.MESSAGE_ID, messageId);
        EmailInboxPeer.doDelete(crit);
    }

    public void DBmultipleDelete(RunData data, String[] checkboxes,
            Context context) throws Exception
    {
        Hashtable userInfo = this.getEmailUserInfo(data, context);
        String user = (String) userInfo.get("username");
        String pass = (String) userInfo.get("password");

        Email email = new Email(user, pass, getPortletParameters(data, context));
        for (int i = 0; i < checkboxes.length; i++)
        {
            int current_index = Integer.parseInt(checkboxes[i]);
            Message message = email.getMessage(current_index);
            String messageId = email.getMessageId(message);
            email.close();
            Criteria crit = new Criteria();
            crit.add(EmailInboxPeer.MESSAGE_ID, messageId);
            EmailInboxPeer.doDelete(crit);
        }
        email.close();
    }

    public void doCreatenewfolder(RunData data, Context context)
            throws AuthenticationFailedException, NoSuchProviderException,
            Exception
    {
        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", "yes");
        setPortletSession(data, context, "showmessagefolder", "no");
        setPortletSession(data, context, "message_prompt", null);

    }

    public void doGetfoldername(RunData data, Context context)
    {

        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));
            String folder_name = data.getParameters().getString("folder_name");
            email.doCreatefolder(folder_name);
            email.close();
        } catch (Exception e)
        {
            log.error("Error in doGetfoldername()", e);
        }
    }

    public void doGetfolderdest(RunData data, Context context)
    {
        String toFolder = data.getParameters().getString("foldername");
        String fromFolder = (String)getPortletSession(data, context, "folder_name");
        String[] checkboxes = null;
        checkboxes = data.getParameters().getStrings("check");

        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));
            if (checkboxes != null)
            {
                email.moveMessage(fromFolder, toFolder, checkboxes);
            }
            email.close();
            doInbox(data, context);

        } catch (Exception e)
        {
            log.error("Error in doGetfolderdest()", e);
        }
    }

    public void doMovesinglemsge(RunData data, Context context)
    {
        String index = (String)getPortletSession(data, context, "index");

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

        int current_index = Integer.parseInt(index);

        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));
            String toFolder = data.getParameters().getString("foldername");
            email.moveMessage(fromFolder, toFolder, current_index);
            email.close();
            doInbox(data, context);
        } catch (Exception e)
        {
            log.error("Error in doMovesinglemsge()", e);
        }

    }

    // show list of messages in a folder
    public void doOpenmyfolder(RunData data, Context context)
    {
        setPortletSession(data, context, "showInbox", "no");
        setPortletSession(data, context, "showmessagefolder", "yes");
        setPortletSession(data, context, "createfolder", "no");

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

        String folder_name = data.getParameters().getString("folder_name");

        setPortletSession(data, context, "folder_name", folder_name);

        try
        {
            Email email = new Email(user, pass, getPortletParameters(data,
                    context));
            String protocol = getPortletParameter(data, context, "protocol");
            Vector message_folder = (Vector) email.openMyfolder(folder_name,
                    protocol);
            setPortletSession(data, context, "message_folder", message_folder);
            email.close();
        } catch (Exception e)
        {
            log.error("Error in doOpenmyfolder()", e);
        }
    }

    public void doFolderdelete(RunData data, Context context)
    {
        String folder_name = data.getParameters().getString("folder_name");

        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));
            email.folderDelete(folder_name);
            email.close();

        } catch (Exception e)
        {
            log.error("Error in doFolderdelete()", e);
        }
    }

    /**
     * get user authentication info for email. Check first in porlet instance.
     * If not found retrieve current user name and password
     *  
     */
    public Hashtable getEmailUserInfo(RunData rundata, Context context)
    {
        Hashtable userHash = new Hashtable();
        String user = "";
        String password = "";
        String email = "";
        String jetspeedUser = "";
        String jetspeedPassword = "";
        String jetspeedEmail = "";
        try
        {
            //look first if there is a username passed by the login page
            user = rundata.getParameters().getString("emailUsername");
            password = rundata.getParameters().getString("emailPassword");
            email = rundata.getParameters().getString("addressFrom");

            if (email == null || email.equals(""))
            {
                email = jetspeedEmail = (JetspeedSecurity.getUser(rundata
                        .getUser().getUserName()).getEmail());
            }

            if (user == null || user.equals(""))
            {

                user = getPortletParameter(rundata, context, "username");
                password = getPortletParameter(rundata, context, "password");
                
                //check if there is an email address in the portlet parameter
                String emailParam = getPortletParameter(rundata, context, "email_address");
                if(emailParam != null && !emailParam.equals(""))
                {
                    email = emailParam;
                }

                //check if there is a default value in the portlet parameter
                if (user.equals(""))
                {

                    jetspeedUser = (JetspeedSecurity.getUser(rundata.getUser()
                            .getUserName()).getUserName());
                    jetspeedPassword = (JetspeedSecurity.getUser(rundata
                            .getUser().getUserName()).getPassword());
                    if (email.equals(""))
                    {
                        jetspeedEmail = (JetspeedSecurity.getUser(rundata
                                .getUser().getUserName()).getEmail());
                    }
                    //use turbine user info
                    user = jetspeedUser;
                    password = jetspeedPassword;
                    email = jetspeedEmail;

                }
            }

            userHash.put("username", user);
            userHash.put("password", password);
            userHash.put("email", email);
        } catch (Exception e)
        {
            log.error(e);
        }
        return userHash;
    }

    /**
     * get portlet parameter from portlet instance. if not found, get from
     * registry
     */
    public String getPortletParameter(RunData data, Context context,
            String paramName)
    {
        String ret = null;
        try
        {

            ret = PortletConfigState.getParameter(this.getPortlet(context),
                    data, paramName, null);
        } catch 

⌨️ 快捷键说明

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