📄 messageservlet.java
字号:
.append("</font> </td></tr>\r\n");
if(msg.messageParts != null) {
sb.append("<tr><td width=\"110\" valign=\"top\" class=\"hdr\" bgcolor=\"#ccccff\"><font size=\"2\">")
.append(myContext.getI18nString("_str_msg_attach"))
.append("</font></td><td width=\"600\" class=\"data\" bgcolor=\"#eeeeff\"><font size=\"2\">\r\n");
StringBuffer sbAtt = new StringBuffer();
int attNo = 0;
for(java.util.Enumeration en = msg.messageParts.elements(); en.hasMoreElements();) {
oliva.mail.MessagePart att = (oliva.mail.MessagePart)en.nextElement();
String link = "";
if(att.type == oliva.mail.MessagePart.T_RFC822) {
link = "./message?msgno=" +
Integer.toString(msg.msgNo) + "&msguid=" + msg.UID +
"&partno=" + Integer.toString(att.partNo);
/*
"&ppno=" + Integer.toString(partno) +
"&ppgno=" + Integer.toString(msg.pgNo);
*/
sbAtt.append("<a href=\"" + link + "\">" + myContext.getI18nString("_str_rfc822message") + "</a>; ");
} else if(att.fileName != null) {
link = "./attach/" + att.fileName/*.replace(' ', '_')*/ + "?msgno=" +
Integer.toString(msg.msgNo) + "&msguid=" + msg.UID +
"&partno=" + Integer.toString(att.partNo) +
/*"&file=" + att.fileName.replace(' ', '_') +*/
((att.charset != null)?"&charset=" + att.charset:"") +
"&ctnttype=" + att.contentType/*.replace('/', '@')*/;
sbAtt.append("<a target=\"_blank\" href=\"" + link + "\">" + att.fileName + "</a>; ");
} else if(att.cid != null || att.alternative || att.type == oliva.mail.MessagePart.T_BINARY) {
if(att.type == oliva.mail.MessagePart.T_TEXT) {
String attFileName = "(ATT" + String.valueOf(attNo++) + "." +
oliva.mail.MailUtils.getExtension(att.contentType) + ")";
link = "./textpart?msgno=" +
Integer.toString(msg.msgNo) + "&msguid=" + msg.UID +
"&partno=" + Integer.toString(att.partNo) +
"&file=" + attFileName + "&ctnttype=" + att.contentType;
sbAtt.append("<a href=\"" + link + "\" target=\"_blank\">" + attFileName + "</a>; ");
} else if(att.type == oliva.mail.MessagePart.T_BINARY) {
String attFileName = "ATT" + String.valueOf(attNo++) + "." +
oliva.mail.MailUtils.getExtension(att.contentType);
link = "./attach/" + attFileName + "?msgno=" +
Integer.toString(msg.msgNo) + "&msguid=" + msg.UID +
"&partno=" + Integer.toString(att.partNo) +
/*"&file=" + attFileName +*/
((att.charset != null)?"&charset=" + att.charset:"") +
"&ctnttype=" + att.contentType/*.replace('/', '@')*/;
sbAtt.append("<a target=\"_blank\" href=\"" + link + "\">" + attFileName + "</a>; ");
}
}
}
String attList = sbAtt.toString();
if(attList.length() > 3)
attList = attList.substring(0, attList.length() - 3);
sb.append(attList).append("</font> </td></tr>");
}
//Sent date
sb.append("<tr>\r\n");
sb.append("<td valign=\"top\" class=\"hdr\" bgcolor=\"#ccccff\"><font size=\"2\">")
.append(myContext.getI18nString("_str_msg_sentdate")).append("</font></td>\r\n");
sb.append("<td class=\"data\" bgcolor=\"#eeeeff\"><font size=\"2\">")
.append(oliva.common.OlivaUtils.getDateString(msg.sentDate, myContext.lang, myContext.getI18nString("_settings.dateFormat")))
.append("</font></td>\r\n");
sb.append("</tr>\r\n");
//Received date
sb.append("<tr>\r\n");
sb.append("<td valign=\"top\" class=\"hdr\" bgcolor=\"#ccccff\"><font size=\"2\">")
.append(myContext.getI18nString("_str_msg_received_date")).append("</font></td>\r\n");
sb.append("<td class=\"data\" bgcolor=\"#eeeeff\"><font size=\"2\">")
.append(oliva.common.OlivaUtils.getDateString(msg.receivedDate, myContext.lang, myContext.getI18nString("_settings.dateFormat")))
.append("</font></td>\r\n");
sb.append("</tr>\r\n");
sb.append("<tr>\r\n");
sb.append("<td valign=\"top\" class=\"hdr\" bgcolor=\"#ccccff\"><font size=\"2\">")
.append(myContext.getI18nString("_str_list_size")).append(":</font></td>\r\n");
sb.append("<td class=\"data\" bgcolor=\"#eeeeff\"><font size=\"2\">")
.append(OlivaUtils.getSizeString(msg.msgSize)).append("</font></td>\r\n");
sb.append("</tr>\r\n");
sb.append("<tr>\r\n");
sb.append("<td valign=\"top\" class=\"hdr\" bgcolor=\"#ccccff\">")
.append("<font size=\"2\">").append(myContext.getI18nString("_str_msg_codepage"))
.append("</font></td>\r\n");
sb.append("<td class=\"data\" bgcolor=\"#eeeeff\"><font size=\"2\">\r\n");
if(msg.cp == null || msg.cp.equals("")) {
sb.append("Auto\r\n");
} else {
sb.append("<a href=\"./message?msgno=").append(msg.msgNo)
.append("&msguid=").append(msguid)
.append((partno == -1)?"":"&partno=" + String.valueOf(partno))
.append("\"><font size=\"2\">Auto</font></a>\r\n");
}
sb.append(" ");
for(java.util.Enumeration cpen = myContext.cpProps.propertyNames(); cpen.hasMoreElements();) {
String pkey = (String)cpen.nextElement();
String pvalue = myContext.cpProps.getProperty(pkey);
if(msg.cp != null && pvalue.equals(msg.cp)) {
sb.append(pkey);
} else {
sb.append("<a href=\"./message?msgno=").append(msg.msgNo)
.append("&msguid=").append(msguid)
.append((partno == -1)?"":"&partno=" + String.valueOf(partno))
.append("&cp=").append(pvalue).append("\"><font size=\"2\">")
.append(pkey).append("</font></a>\r\n");
}
sb.append(" ");
}
sb.append("<input type=\"hidden\" name=\"msgno\" value=\"").append(msg.msgNo)
.append("\">\r\n");
sb.append("<input type=\"hidden\" name=\"msuid\" value=\"").append(msguid).append("\">\r\n");
if (partno != -1) {
sb.append("<input type=\"hidden\" name=\"partno\" value=\"")
.append(partno).append("\">\r\n");
}
sb.append("<select name=\"cp\">\r\n");
sb.append("<option value=\"\">-------</option>\r\n");
String cps[] = olivax.webmail.Charsets.getCpArraySorted();
for(int i = 0; i < cps.length; i++) {
String selected = "";
if(msg.cp != null && cps[i].equalsIgnoreCase(msg.cp))
selected = "selected";
sb.append("<option value=\"").append(cps[i]).append("\" ").append(selected).append(">")
.append(cps[i]).append("</option>\r\n");
}
sb.append("</select>\r\n");
sb.append("<input type = \"submit\" value=\"Go\">\r\n");
sb.append("</font></td></tr>\r\n");
sb.append("<tr>\r\n");
StringBuffer sbCtnt = new StringBuffer();
boolean allowHr = false;
if(msg.messageParts != null) {
for(java.util.Enumeration en = msg.messageParts.elements(); en.hasMoreElements();) {
oliva.mail.MessagePart textPart = (oliva.mail.MessagePart)en.nextElement();
if(textPart.fileName != null || textPart.cid != null || textPart.alternative ||
textPart.type == oliva.mail.MessagePart.T_RFC822 || textPart.type == oliva.mail.MessagePart.T_BINARY)
continue;
String textPartText = null;
if (!textPart.isMimeType("message/partial")) {
textPartText = msg.getTextPart(textPart.partNo);
}
if(textPart.isMimeType("text/html")) {
if(msg.cids != null) {
for(java.util.Enumeration ciden = msg.cids.elements(); ciden.hasMoreElements();)
{
oliva.mail.MessagePart cidPart = (oliva.mail.MessagePart)ciden.nextElement();
String link = "./attach?msgno=" + Integer.toString(msg.msgNo) +
"&msguid=" + msg.UID + "&partno=" + Integer.toString(cidPart.partNo);
textPartText = textPartText.replaceAll(cidPart.getCidPattern(), link);
}
}
textPartText = oliva.mail.MailUtils.escapeHtmlTags(textPartText);
if(!showPics) {
String htmlNoPics = myContext.getHtmlNoPics(textPartText);
if(!textPartText.equals(htmlNoPics)) {
textPartText = htmlNoPics;
htmlNoPics = null;
picsHided = true;
}
}
} else if(textPart.isMimeType("text/*")) {
textPartText = "<font face=\"Courier\" size=\"2\">" +
oliva.mail.MailUtils.replaceODOA(textPartText.replaceAll("<", "<").replaceAll(">", ">"), "<br/>") + "</font>";
} else if(textPart.isMimeType("message/delivery-status"))
textPartText = "<pre>" + textPartText + "</pre>";
else if(textPart.isMimeType("message/partial"))
textPartText = "<h3>" + myContext.getI18nString("_str_mb_splitted") + "</h3>";
if(textPartText != null) {
if(allowHr) {
sbCtnt.append("<hr/>");
}
sbCtnt.append("<div>").append(textPartText).append("</div>");
allowHr = true;
}
}
if(myContext.mailBean.isRichContent()) {
for(java.util.Enumeration en = msg.messageParts.elements(); en.hasMoreElements();) {
oliva.mail.MessagePart att = (oliva.mail.MessagePart)en.nextElement();
if(att.fileName != null && att.isMimeType("image/*")) {
if(!showPics) {
picsHided = true;
break;
}
String link = "./attach/" + att.fileName/*.replace(' ', '_')*/ + "?msgno=" +
Integer.toString(msg.msgNo) + "&msguid=" + msg.UID +
"&partno=" + Integer.toString(att.partNo) +
/*"&file=" + att.fileName.replace(' ', '_') +*/
/*((att.charset != null)?"&charset=" + att.charset:"") +*/
"&ctnttype=" + att.contentType/*.replace('/', '@')*/;
if(allowHr) {
sbCtnt.append("<hr/>");
}
sbCtnt.append("<p><img src=\"").append(link).append("\"></p>");
allowHr = true;
}
}
}
}
sb.append("<td valign=\"top\" class=\"hdr\" bgcolor=\"#ccccff\"><font size=\"2\">")
.append(myContext.getI18nString("_str_msg_content"))
.append("</font>\r\n");
if(msg.isHighlyImportant()) {
//sb.append(" <img src=\"imptnt.gif\" width=\"16\" height=\"16\">");
sb.append("<font color=\"#990033\" size=\"2\"><strong>!</strong></font>");
}
sb.append("<br>");
sb.append("<a target=\"_blank\" href=\"./headers?msgno=")
.append(msg.msgNo).append("&msguid=").append(msguid).append("&cp=")
.append(OlivaUtils.nvl(msg.cp)).append("&partno=").append(partno)
.append("\"><font size=\"1\">").append(myContext.getI18nString("_str_headers"))
.append("</font></a><br>\r\n");
sb.append("<a target=\"_blank\" href=\"./source?msgno=").append(msg.msgNo)
.append("&msguid=").append(msguid).append("&partno=").append(partno)
.append("\"><font size=\"1\">").append(myContext.getI18nString("_str_source"))
.append("</font></a><br>\r\n");
if(!showPics && picsHided) {
sb.append("<br><a href=\"./message?msgno=").append(msg.msgNo)
.append("&msguid=").append(msguid).append("&partno=").append(partno)
.append("&cp=").append(OlivaUtils.nvl(msg.cp))
.append("&shpics=true\"><img border=\"0\" src=\"shpics.jpg\" width=\"32\" height=\"32\" alt=\"")
.append(myContext.getI18nString("_str_show_pics")).append("\"></a><br>\r\n");
}
sb.append("<img src=\"./shim.gif\" width=\"1\" height=\"280\"></td>\r\n");
sb.append("<td height=\"100%\" valign=\"top\" bgcolor=\"ffffff\">\r\n");
sb.append(sbCtnt.toString());
sb.append(" </td>\r\n");
sb.append("</tr>\r\n");
sb.append("</table>\r\n");
sb.append("</form>\r\n");
webPane = new WebPane();
webPane.setColor(WebPane.COLOR_9999CC);
webPane.setHeight("200");
webPane.setContent(sb.toString());
webPage.addPane(webPane);
//Menu
webPage.addPane(menuPane);
webPage.show(out);
sb = new StringBuffer();
sb.append("</body>\r\n");
sb.append("</html>\r\n");
out.print(sb.toString());
out.flush();
out.close();
} catch (Exception e) {
try {
Context.sendErrorRedirect(this, request, response, "/error", e);
} catch (Exception exc) {
exc.printStackTrace();
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -