⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.java

📁 电子邮件收发系统,采用各种技术进行研究开发适用大学生课程设计
💻 JAVA
字号:
package net.meybo.mail;


import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;

import java.util.List;
import java.util.Map;

//import net.meybo.mail.server.DnsManage;
import net.meybo.util.XMLTool;


import org.apache.log4j.Logger;
import org.dom4j.*;

/**
 * 系统配置信息
 * <p>Title: </p>
 * <p>Description: 邮件系统配置模块,读取并处理配置文件信息</p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: 脉博软件</p>
 * @author 蔡世友
 * @version 1.0
 */
public abstract class Config {
private final static Map servers=new HashMap();
private static String mailPath="";
private static final Logger logger = (Logger) Logger.getLogger(Config.class.getName());
public static String getMailPath() {
	if(servers.isEmpty())init();
	return mailPath;
}

public static void init()
{
	if(!servers.isEmpty())
	{
		servers.clear();
	}
	URL url=Thread.currentThread().getContextClassLoader().getResource("mailserver.xml");	
	String path=url.getFile();	
	try{
	Element config=XMLTool.load(path);	
	mailPath=config.selectSingleNode("/root/mail/path").getText();
	List list=config.selectNodes("/root/server/mbmail");	
	for(int i=0;i<list.size();i++)
	{
		//java.util.Map map=new HashMap();
		Element el=(Element)list.get(i);
		MailServer server=new MailServer();
		server.setHostIp(el.element("ip").getText());
		server.setServerName(el.element("name").getText());
		server.setManagePort(el.element("port").element("manage").getText());
		server.setSmtpPort(el.element("port").element("smtp").getText());
		server.setPop3Port(el.element("port").element("pop3").getText());
		System.out.println(server.getHostIp()+":"+server.getManagePort());
		//本处只有在使用Meybo Mail Server软件作邮件服务器端的时候才用到
		List dnsList=null;//=DnsManage.listiDomainName(server.getHostIp(),server.getManagePort());
		if(dnsList==null || dnsList.size()<1)
		{
			logger.error("不能从服务器"+server.getServerName()+"["+server.getHostIp()+"]加载数据,可能该服务器邮件服务器端程序已经停止运行!");
		}
		else
		{
		for(int j=0;j<dnsList.size();j++)
		{	
			server.addDomain((String)dnsList.get(j));			
		}
		}
		servers.put(server.getServerName(),server);
		//conList.add(i,map);	
		//logger.debug(i+"个IP地址");
	}	
	//下面是在开源系统中使用的配置文件,支持任意邮件服务器
	list=config.selectNodes("/root/server/data");
	for(int i=0;i<list.size();i++)
	{
		System.out.println("有一个域名");
		Element el=(Element)list.get(i);
		OtherMailServer server=new OtherMailServer();
		server.setPop3Port("110");
		server.setSmtpPort("25");	
		server.addDomain(el.attributeValue("domain"));
		server.setServerName(el.attributeValue("domain"));
		server.setSmtp(el.attributeValue("smtp"));
		server.setPop3(el.attributeValue("pop3"));
		server.setHostIp(el.attributeValue("pop3"));//pop3地址作为ip地址
		servers.put(server.getServerName(),server);
	}
	
	
	logger.info("系统初始化!");	
	}
	catch(Exception e)
	{
		logger.error("配置文件出错:"+e.getMessage()+path);
	}
}

public static Map getServers() {
	init();
	if(servers.isEmpty())init();
	return servers;
}
public static List getDomains()
{
	List list=new ArrayList();
	Iterator it=Config.getServers().values().iterator();
	while(it.hasNext())
	{
     MailServer server=(MailServer)it.next();
     if(server.getDomains()!=null){
     Iterator domains=server.getDomains().iterator();
     while(domains.hasNext())
     {
    	 Map data=new HashMap();
		data.put("domain",domains.next());
		data.put("host",server.getHostIp());
		list.add(data);
     }
     }
	}
	return list;
}
public static MailServer findServerByDomain(String domain)
{
	MailServer ret=null;
	if(servers.isEmpty())init();
	if(servers.isEmpty())return null;
	Iterator it=servers.keySet().iterator();
	while(it.hasNext())
	{
		MailServer server=(MailServer)servers.get(it.next());
		if(server.getDomains()!=null && server.getDomains().contains(domain))
		{
			ret=server;
		}
	}
	return ret;
}
public static void main(String[] args) {
	Config.init();
	System.out.print(Config.getMailPath());
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -