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