/**
* <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服务器后直接打开用户的邮件!";
}