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

📄 smtpserver.java

📁 Java Mail Server JAVA编写的邮件服务器
💻 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 + -