/* CVS ID: $Id: WebMailSession.java,v 1.14 2001/03/26 17:08:11 wastl Exp $ */
package net.wastl.webmail.server;
import java.net.*;
import java.io.*;
import java.util.*;
import java.text.*;
import javax.mail.*;
import javax.mail.event.*;
import javax.mail.internet.*;
import net.wastl.webmail.misc.*;
import net.wastl.webmail.xml.*;
// No longer used:
//import net.wastl.webmail.ui.html.JavaScriptFilter;
//import net.wastl.webmail.ui.html.HTMLifier;
import net.wastl.webmail.ui.html.Fancyfier;
import net.wastl.webmail.server.http.HTTPRequestHeader;
import net.wastl.webmail.exceptions.*;
// Modified by exce, start
import org.bulbul.webmail.util.TranscodeUtil;
// Modified by exce, end
import org.w3c.tidy.Tidy;
import org.w3c.dom.*;
/*
* WebMailSession.java
*
* Created: Thu Feb 4 12:59:30 1999
*
* Copyright (C) 1999-2001 Sebastian Schaffert
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/**
* A user session for WebMail.
* Contains the state of the actual user (loads it from disk).
* Has a unique session-ID.
*
*
* @author Sebastian Schaffert
* @version $Revision: 1.14 $
*/
/* 9/24/2000 devink - updated for challenge/response auth */
public class WebMailSession implements HTTPSession {
/** When has the session been last accessed? */
private long last_access;
/** The session-ID for this session */
private String session_code;
/** Parent WebMailServer */
private WebMailServer parent;
/** State of the current users configuration */
private XMLUserData user;
private XMLUserModel model;
/** Connections to Mailboxes */
private Hashtable connections;
/** Connections to hosts */
private Hashtable stores;
/** javax.mail Mailsession */
private Session mailsession;
private InetAddress remote;
/* Files attached to messages will be stored here. We will have to take care of
possible memory problems! */
private Hashtable mime_parts_decoded;
private boolean sent;
private String remote_agent;
private String remote_accepts;
private int attachments_size=0;
private String last_login;
/** Save the login password. It will be used for the second try password if
* opening a folder fails.
*/
private String login_password;
private Object sess=null;
private Hashtable folders;
protected Vector need_expunge_folders;
protected boolean is_logged_out=false;
public WebMailSession(WebMailServer parent,Object parm,HTTPRequestHeader h)
throws UserDataException, InvalidPasswordException {
try {
Class srvltreq=Class.forName("javax.servlet.http.HttpServletRequest");
if(srvltreq.isInstance(parm)) {
javax.servlet.http.HttpServletRequest req=(javax.servlet.http.HttpServletRequest)parm;
this.sess=req.getSession(false);
session_code=((javax.servlet.http.HttpSession)sess).getId();
try {
remote=InetAddress.getByName(req.getRemoteHost());
} catch(UnknownHostException e) {
try {
remote=InetAddress.getByName(req.getRemoteAddr());
} catch(Exception ex) {
try {
remote=InetAddress.getByName("localhost");
} catch(Exception ex2) {}
}
}
} else {
throw new Exception("Servlet class found but not running as servlet");
}
} catch(Throwable t) {
this.remote=(InetAddress)parm;
session_code=Helper.calcSessionCode(remote,h);
}
doInit(parent,h);
}
/**
* This method does the actual initialisation
*
* devink 7/15/2000 - added TwoPassAuthenticationException
* - updated call to getUserData(), to use my new one.
* devink 9/24/2000 - reverted back to old getUserData call
*/
protected void doInit(WebMailServer parent, HTTPRequestHeader h)
throws UserDataException, InvalidPasswordException {
setLastAccess();
this.parent=parent;
remote_agent=h.getHeader("User-Agent").replace('\n',' ');
remote_accepts=h.getHeader("Accept").replace('\n',' ');
parent.getStorage().log(Storage.LOG_INFO,"WebMail: New Session ("+session_code+")");
user=WebMailServer.getStorage().getUserData(h.getContent("login"),h.getContent("vdom"),h.getContent("password"),true);
last_login=user.getLastLogin();
user.login();
login_password=h.getContent("password");
model=parent.getStorage().createXMLUserModel(user);
connections=new Hashtable();
stores=new Hashtable();
folders=new Hashtable();
mailsession=Session.getDefaultInstance(System.getProperties(),null);
/* If the user logs in for the first time we want all folders subscribed */
if(user.getLoginCount().equals("1")) {
Enumeration enum=user.mailHosts();
while(enum.hasMoreElements()) {
String id=(String)enum.nextElement();
if(user.getMailHost(id).getName().equals("Default")) {
try {
setSubscribedAll(id,true);
} catch(MessagingException ex) {
ex.printStackTrace();
}
break;
}
}
}
setEnv();
}
public XMLUserModel getUserModel() {
return model;
}
public Document getModel() {
return model.getRoot();
}
/**
* Calculate session-ID for a session.
*
* @param a Adress of the remote host
* @param h Requestheader of the remote user agent
* @returns Session-ID
*/
public String calcCode(InetAddress a, HTTPRequestHeader h) {
if(sess==null) {
return Helper.calcSessionCode(a,h);
} else {
try {
Class srvltreq=Class.forName("javax.servlet.http.HttpSession");
if(srvltreq.isInstance(sess)) {
return ((javax.servlet.http.HttpSession)sess).getId();
} else {
return "error";
}
} catch(Throwable t) {
return "error";
}
}
}
/**
* Login to this session.
* Establishes connections to a user�s Mailhosts
*
* @param h RequestHeader with content from Login-POST operation.
* @deprecated Use login() instead, no need for parameters and exception handling
*/
public void login(HTTPRequestHeader h) throws InvalidPasswordException {
//user.login(h.getContent("password"));
login();
}
/**
* Login this session.
*
* Updates access time, sets initial environment and connects all configured mailboxes.
*/
public void login() {
setLastAccess();
setEnv();
connectAll();
}
/**
* Return a locale-specific string resource
*/
public String getStringResource(String key) {
return parent.getStorage().getStringResource(key,user.getPreferredLocale());
}
/**
* Create a Message List.
* Fetches a list of headers in folder foldername for part list_part.
* The messagelist will be stored in the "MESSAGES" environment.
*
* @param foldername folder for which a message list should be built
* @param list_part part of list to display (1 = last xx messages, 2 = total-2*xx - total-xx messages)
*/
public void createMessageList(String folderhash,int list_part)
throws NoSuchFolderException {
long time_start=System.currentTimeMillis();
TimeZone tz=TimeZone.getDefault();
DateFormat
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java的邮件服务器源程序
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共1094个文件
gif:252个
xsl:216个
java:140个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
温馨提示
基于Java的邮件服务器源程序,完全可以运行,是适合初学者的样例程序。。。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 1094 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- wyp256782016-09-10怎么不能运行啊
- wang_xiao_ke2012-10-03没法运行啊,不是想要的东西
- melovy2013-01-23运行有问题啊,不过代码学习学习也挺不错的。
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
szby1314
- 粉丝: 3
- 资源: 5
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)