📄 smtpserver.java
字号:
/**************************************************************** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * * * Copyright 2008 Jun Li(SiChuan University, the School of * * Software Engineering). All rights reserved. * * * * Licensed to the JMS under one or more contributor license * * agreements. See the LICENCE file distributed with this * * work for additional information regarding copyright * * ownership. The JMS licenses this file you may not use this * * file except in compliance with the License. * * * * Unless required by applicable law or agreed to in writing, * * software distributed under the License is distributed on an * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * * KIND, either express or implied. See the License for the * * specific language governing permissions and limitations * * under the License. * ****************************************************************/package org.jpxx.mail.Smtp;import java.io.IOException;import java.net.ServerSocket;import java.util.ArrayList;import java.util.Iterator;import org.apache.log4j.Logger;import org.jpxx.mail.Factory;import org.jpxx.mail.Service.AbstractServer;import org.jpxx.mail.Config.SysConfig;/** * <p><code>SmtpServer</code> is to manage all smtp server in a same machine with * different SMTP SERVER ports.<p> * * @author Jun Li * @version Revision: 0.0.3, Date: 2008/05/19 * @since JMS 0.0.1 */public class SmtpServer extends AbstractServer { /** * Instance of SmtpServer. */ private static SmtpServer singletonInstance = null; /** * Creates an instance of Logger and initializes it. * It is to write log for <code>SmtpServer</code>. */ private Logger log = Factory.getSingletonInstance().getLogger(this); /** * Gets singleton instance of SmtpServer. * @return singleton instance of SmtpServer */ public static SmtpServer getSingletonInstance() { if (singletonInstance == null) { singletonInstance = new SmtpServer(); } return singletonInstance; } /** * Starts all SMTP server. * @see org.jpxx.mail.Service.Server#start() */ public void start() { SysConfig sc = new SysConfig(); int ports[] = sc.getSmtpPort(); ArrayList list = new ArrayList(); for (int i = 0; i < ports.length; i++) { try { SmtpServerHandler handler = new SmtpServerHandler(ports[i]); handler.start(); list.add(handler.getServerSocket()); log.info("Smtp server start at port: " + ports[i]); } catch (IOException e) { log.error("Smtp server can't listen at port: " + ports[i]); } } service.addService("SMTP_SERVICES", list); } /** * Stops all SMTP server. * @see org.jpxx.mail.Service.Server#stop() */ public void stop() { ArrayList services = (ArrayList) service.getService().get("SMTP_SERVICES"); if (services != null) { for (Iterator i = services.iterator(); i.hasNext();) { ServerSocket ss = (ServerSocket) i.next(); try { if (!ss.isClosed()) { ss.close(); log.error("Stop Smtp Server: " + ss.getLocalPort()); } } catch (Exception e) { log.error("Close Smtp Server Error!" + e.getMessage()); } } } clearServcice(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -