📄 pdamessageservlet.java
字号:
oliva.mail.MessagePart att = (oliva.mail.MessagePart)en.nextElement();
String link = "";
if(att.type == oliva.mail.MessagePart.T_RFC822) {
link = "./pda_message?msgno=" +
Integer.toString(msg.msgNo) + "&msguid=" + msg.UID +
"&partno=" + Integer.toString(att.partNo);
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) +
"&disp=att" +
/*"&file=" + att.fileName.replace(' ', '_') +*/
((att.charset != null)?"&charset=" + att.charset:"") +
"&ctnttype=" + att.contentType;
//sbAtt.append("<a target=\"_blank\" href=\"" + link + "\">" + att.fileName + "</a>; ");
sbAtt.append("<a 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 = "./pda_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) +
"&disp=att" +
/*"&file=" + attFileName +*/
((att.charset != null)?"&charset=" + att.charset:"") +
"&ctnttype=" + att.contentType;
//sbAtt.append("<a target=\"_blank\" href=\"" + link + "\">" + attFileName + "</a>; ");
sbAtt.append("<a href=\"" + link + "\">" + attFileName + "</a>; ");
}
}
}
String attList = sbAtt.toString();
if (attList.length() > 3) {
attList = attList.substring(0, attList.length() - 3);
sb.append("<tr><td bgColor=\"#ccccff\"><font size=\"3\"><strong>")
.append(myContext.getI18nString("_str_msg_attach"))
.append(" </strong>");
sb.append(attList).append(" </font></td></tr>");
}
}
sb.append("<tr><td bgColor=\"#ccccff\"><font size=\"3\"><strong>").append(myContext.getI18nString("_str_msg_sentdate")).append(" </strong>")
.append(oliva.common.OlivaUtils.getDateString(msg.sentDate, myContext.lang, myContext.getI18nString("_settings.dateFormat"))).append("</font></td></tr>");
sb.append("<tr><td bgColor=\"#ccccff\"><font size=\"3\"><strong>").append(myContext.getI18nString("_str_msg_codepage")).append(" </strong>");
if(msg.cp == null || msg.cp.equals("")) {
sb.append("Auto\r\n");
} else {
sb.append("<a href=\"./pda_message?msgno=").append(msg.msgNo)
.append("&msguid=").append(msguid)
.append((partno == -1)?"":"&partno=" + String.valueOf(partno))
.append("\"><font size=\"3\">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=\"./pda_message?msgno=").append(msg.msgNo)
.append("&msguid=").append(msguid).append(
(partno == -1) ? "" : "&partno="
+ String.valueOf(partno)).append(
"&cp=").append(pvalue).append(
"\"><font size=\"3\">").append(pkey)
.append("</font></a>\r\n");
}
sb.append(" ");
}
sb.append("</font></td></tr>");
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=\"3\">" +
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;
if (allowHr) {
sbCtnt.append("<hr/>");
}
sbCtnt.append("<p><img src=\"").append(link)
.append("\"></p>");
allowHr = true;
}
}
}
}
sb.append("<tr><td bgColor=\"#ccccff\"><font size=\"3\"><strong>")
.append(myContext.getI18nString("_str_list_size")).append(": </strong>")
.append(OlivaUtils.getSizeString(msg.msgSize)).append("</font></td></tr>");
if(!showPics && picsHided) {
sb.append("<tr><td bgColor=\"#ccccff\">");
sb.append("<a href=\"./pda_message?msgno=").append(String.valueOf(msg.msgNo)).append("&msguid=").append(msguid).append("&partno=").append(String.valueOf(partno)).append("&cp=").append(oliva.common.OlivaUtils.nvl(msg.cp)).append("&shpics=true\"><font size=\"3\" color=\"red\">").append(myContext.getI18nString("_str_show_pics")).append("</font></a>");
sb.append("</td></tr>");
}
sb.append("<tr><td bgColor=\"#ccccff\"><font size=\"3\"><strong>").append(myContext.getI18nString("_str_msg_content")).append("</strong></font>");
if(msg.isHighlyImportant()) {
sb.append("<font color=\"#990033\" size=\"3\"><strong> !</strong></font>");
//sb.append(" <img src=\"imptnt.gif\" width=\"16\" height=\"16\">");
}
sb.append("</td></tr>");
sb.append("<tr><td vAlign=\"top\" bgColor=\"#ffffff\" height=\"100%\">").append(sbCtnt.toString()).append(" </td>");
sb.append("</tr>");
sb.append("</table>");
pdaPane = new PdaPane();
pdaPane.setColor(PdaPane.COLOR_9999CC);
pdaPane.setContent(sb.toString());
pdaPage.addPane(pdaPane);
//Menu
pdaPage.addPane(menuPane);
//Sublogo
pdaPane = new PdaPane();
pdaPane.setColor(PdaPane.COLOR_CCFF99);
pdaPane.setHeight("20");
pdaPane.setContent("<font size=\"3\" color=\"#999966\" face=\"arial, tahoma, verdana\"><strong><i>"
+ myContext.getSenderDomain() + "</i></strong></font>");
pdaPage.addPane(pdaPane);
pdaPage.show(out);
out.flush();
out.close();
} catch (Exception e) {
try {
Context.sendErrorRedirect(this, request, response, "/pda_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 + -