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