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 + -
显示快捷键?