/**
* <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: YuLimin@163.net</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("/"));
}
else
{
return strTemp;
}
}
public String getServletInfo()
{
return "登录Domino服务器后直接打开用户的邮件!";
}
}
分享到:
相关推荐
删除domino所有用户的N天前的邮件记录,给服务器节省空间。 这是用在网上收集的代码,并且经过修改已经正常运行用在生产上。 可以设置在代理上,让代理每天在指定时间自动删除。
domino Web 开发资料介绍了用domino作为web服务器来进行应用系统开发的基本知识
Domino Web视图设计: Domino Web视图的表现方法 Domino视图在Web上显示方式 如何构建指定风格的视图
domino xpages 获取当前用户邮件DB
Domino Web开发培训
Domino_Web开发规则 Domino_Web开发规则
Domino Web高级編程 Domino Web高级編程 Domino Web高级編程
Web 编辑器 domino Web 编辑器 domino Web 编辑器 domino
domino web 注册用戶代码 lotussript
第1章 Domino Web开发综述 1 1.1 为什么使用Domino 1 1.2 Domino是怎样运行的 1 1.2.1 Domino与传统数据库的区别 1 1.2.2 Domino和Web 2 1.3 开发部件 2 1.4 其他工具 3 1.5 简单的Domino Web软件例子 10 参考信息 ...
74. 在打开有下面这段代码的页面时将会跳出一个468x60大小的小窗口 160 75. javascript的容错脚本 161 76. Web search with JavaScript 162 77. 如何防止他人使用旧id和旧口令访问Domino服务器 164 78. Fixing the ...
c api 实现以domino服务的方式自动发送邮件。
在R6中如何限制用户给Domino目录中的群组发邮件
在DOMINO6。0以上服务器中提供了多WEB站点的支持,可以实现一个DOMINO服务器,运行多个WEB站点,每个站点可以有独立的IP地址,用户用指定IP访问DOMINO服务器时,运行每个IP地址的主站点。
第1章 Domino Web开发综述 1 1.1 为什么使用Domino 1 1.2 Domino是怎样运行的 1 1.2.1 Domino与传统数据库的区别 1 1.2.2 Domino和Web 2 1.3 开发部件 2 1.4 其他工具 3 1.5 简单的Domino Web软件例子 10 参考信息 ...
lotus domino 删除全用户指定邮件
在Domino中使用黑名单站点防止垃圾邮件
Domino Web Access iNotes配置手册 Domino Web Access iNotes配置手册
domino漂亮登陆界面,使用bootstrap,把数据库直接放到data文件夹下 详情请浏览 https://blog.csdn.net/weijia3624/article/details/48338045
大多数电子邮件用户都熟悉垃圾邮件:不请自来的电子邮件,通常是大批量地发向某些庞大的电子邮件地址列表。在最好的情况下,垃圾邮件只是令人讨厌的东西;在最坏的情况下,它可能是一个严重问题,极大地影响电子邮件...