/**
* <p>title: mailredirectservlet</p>
* <p>description: 登入domino伺服器後直接打開使用者的郵件!</p>
* <p>前提domino配置成支援servelt,</p>
* <p>打開names.nsf,配置,伺服器文檔,internet協定,domino web引擎,java 伺服器小程式,選擇:domino 伺服器小程式管理器</p>
* <p>儲存後重新開機domino</p>
* <p>把這個編譯後的.class檔案放到%domnio%/data/domino/servlet目錄下面</p>
* <p>然後通過http://%server%/servlet/mailredirectservlet通路即可</p>
* <p>copyright: copyright (c) 2001 - 2004</p>
* <p>company: beyond daybreak office</p>
* <p>homepage: http://202.101.111.1/123</p>
* <p>e-mail: [email protected]</p>
* @author yulimin
* @version 1.0
*/
//package net.echochina.oa;
import java.io.ioexception;
import javax.servlet.servletexception;
import javax.servlet.servletoutputstream;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import lotus.domino.document;
import lotus.domino.notesexception;
import lotus.domino.notesfactory;
import lotus.domino.notesthread;
import lotus.domino.session;
import lotus.domino.view;
public class mailredirectservlet extends httpservlet
{
final static string db_names = "names.nsf";
public mailredirectservlet()
{
}
public void init() throws servletexception
public void destroy()
public void doget(httpservletrequest request,httpservletresponse response) throws servletexception,ioexception
dopost(request,response);
public void dopost(httpservletrequest request,httpservletresponse response) throws servletexception,ioexception
string strfullname = request.getremoteuser();
string strmailfile = "";
response.setcontenttype("text/html; charset=gb2312");
servletoutputstream out = response.getoutputstream();
out.println("直接打開登入使用者的郵件開始!<p>");
out.println("登入的使用者名為:" + strfullname + "<p>");
if(strfullname == null || strfullname.equalsignorecase("anonymous"))
{
out.println("沒有登入到domino伺服器!<p>");
out.println("<script>document.location='/names.nsf?login&redirectto=/servlet/mailredirectservlet';</script>");
}
else
notesthread.sinitthread();
session session = null;
view view = null;
document doc = null;
try
{
session = notesfactory.createsession();
view = session.getdatabase(session.getservername(),db_names).getview("people");
doc = view.getdocumentbykey(getshortname(strfullname));
if(doc != null)
{
strmailfile = doc.getitemvaluestring("mailfile");
strmailfile = strmailfile.replace('//','/');
if(!strmailfile.tolowercase().endswith(".nsf"))
{
strmailfile += ".nsf";
}
out.println(strfullname + "使用者的郵件為:" + strmailfile + "<p>");
string strmailurl = request.getscheme() + "://" + request.getservername();
int strserverport = request.getserverport();
if(strserverport != 80)
strmailurl += ":" + strserverport;
strmailurl += "/" + strmailfile;
out.println("郵件位址為:" + strmailurl + "<p>");
out.println("<script>");
//out.println("alert('開始進入郵件')");
out.println("document.location='" + strmailurl + "'");
out.println("</script>");
//response.sendredirect(strmailurl);
//response.encoderedirecturl(strmailurl)
}
else
out.println("找不到 " + strfullname + " 的郵件檔案!<p>");
}
catch(notesexception e)
out.println(e.tostring() + "<p>");
e.printstacktrace();
system.out.println(e.id + " " + e.text);
finally
try
if(doc != null)
doc.recycle();
doc = null;
if(view != null)
view.recycle();
view = null;
if(session != null)
session.recycle();
session = null;
catch(exception e)
e.printstacktrace();
notesthread.stermthread();
out.close();
//取使用者的短名!
private string getshortname(string strtemp)
if(strtemp.indexof("cn=") >= 0 && strtemp.indexof("/") >= 0)
return strtemp.substring(3,strtemp.indexof("/"));
return strtemp;
public string getservletinfo()
return "登入domino伺服器後直接打開使用者的郵件!";
}