📄 config.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 + -