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

📄 dixie.java

📁 java开源邮件服务器 smtp pop3
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        dixieProps    = StringTools.loadProps( dixiePropsString );

        setTitle( versionString );
        setIconImage( Toolkit.getDefaultToolkit().getImage( iconName ) );
        addWindowListener( this );

        // Create the menu bar

        menu = new MenuBar();

        // Monitor menu **********************************************

        subMenu = new Menu( getString( monitorProp ) );
        menu.add( subMenu );

        // Clear log

        temp = new MenuItem( getString( clearLogProp ) );
        temp.addActionListener( new ActionListener()
        {
            public void actionPerformed( ActionEvent e )
            {
                f.clearLog();
            }
        } ); // End of clear log anonymous class
        subMenu.add( temp );

        // Debug checkbox

        debugBox = new CheckboxMenuItem( getString( debugProp ) );
        debugBox.addItemListener( new ItemListener()
        {
            public void itemStateChanged( ItemEvent e )
            {
                boolean state = debugBox.getState();
         
                mailTask.setDebug( state );
                popTask.setDebug( state );
                passTask.setDebug( state );
                write( getString( debugProp )+" = "+state );
            }
        } ); // End of debug check box anonymous class
        subMenu.add( debugBox );

        // Monitor connect check box

        monitorBox = new CheckboxMenuItem( getString( monitorConnectProp ) );
        monitorBox.addItemListener( new ItemListener()
        {   
            public void itemStateChanged( ItemEvent e )
            {
                boolean state = monitorBox.getState();

                mailTask.setMonitorConnect( state );
                popTask.setMonitorConnect( state );
                passTask.setMonitorConnect( state );
                write( getString( monitorConnectProp )+" = "+state );
            }
        } ); // End of monitor check box anonymous class
        subMenu.add( monitorBox );

        // Add Options Menu

        subMenu = new Menu( getString( optionsProp ) );

        // Show splash screen

        temp = new MenuItem( getString( showSplashScreenProp ) );
        temp.addActionListener( new ActionListener()
        {
            public void actionPerformed( ActionEvent e )
            {
                new Splash();
            }
        } );
        subMenu.add( temp );

        // Display status

        temp = new MenuItem( getString( hideMainWindowProp ) );
        temp.addActionListener( new ActionListener()
        {
            public void actionPerformed( ActionEvent e )
            {
                showMainWindow( false );
            }
        } );
        subMenu.add( temp );
        menu.add( subMenu );

        this.setMenuBar( menu );

        f = new MainDialog();

        new Splash();

        add( f );
        pack();
        center();
        show();

        Letters.load();

        try
        {
            wout = new FileWriter( "mail.log", false );
        }
        catch( java.io.IOException e )
        {
            write("Could not open log file");
        }

        f.append( versionString + " - " + authorString + " - " +
                  homepageString );

        /** Set user defined variables **/

        configuration.OutgoingServer = dixieProps.getProperty( outgoingName, nullProperty );
        configuration.ServedDomains  = dixieProps.getProperty( servedDomainsName, nullProperty );
        configuration.versionString  = versionString;
        configuration.homepageString = homepageString;

        /** Start the servers **/

        mailTask = new SmtpServer( this );
        popTask  = new Pop3Server( this );
        passTask = new EpassServer( this );
        wwwTask  = new WWWServer( this );
    }

    /**
     Writes data to the mail.log file
     **/

    public void write( String data )
    {
        if ( debugDixie )
        {
            f.append( (new Date()).toString() + " " + data );
        }

        try
        {
            wout.write( (new Date()).toString() + " " + data + "\n" );
            wout.flush();
        }
        catch( java.io.IOException e )
        {
            f.append( (new Date()).toString() +
                      " Could not write to log file" );
        }
    }

    public boolean getActive( int server )
    {
        boolean retval = false; // Anything else is stopped

        switch ( server )
        {
            case DM_WWW:
                retval = !wwwTask.stopped;
            break;

            case DM_SMTP:
                retval = !mailTask.stopped;
            break;

            case DM_POP3:
                retval = !popTask.stopped;
            break;

            case DM_PASS:
                retval = !passTask.stopped;
            break;
        }

        return retval;
    }

    public void setActive( int server, boolean active )
    {
        if ( active )
        {
            switch ( server )
            {
                case DM_WWW:
                    wwwTask.startServer();
                break;

                case DM_SMTP:
                    mailTask.startServer();
                break;

                case DM_POP3:
                    popTask.startServer();
                break;

                case DM_PASS:
                    passTask.startServer();
                break;
            }
        }
        else
        {
            switch ( server )
            {
                case DM_WWW:
                    wwwTask.stopServer();
                break;

                case DM_SMTP:
                    mailTask.stopServer();
                break;

                case DM_POP3:
                    popTask.stopServer();
                break;

                case DM_PASS:
                    passTask.stopServer();
                break;
            }
        }
    }

    /**
     Starts the Smtp, Pop3, WWW, and Password Servers.
     Note that servers generally start automatically when created, so
     the constructor should take care of this the first time.
     **/

    public void start()
    {
        mailTask.startServer();
        popTask.startServer();
        passTask.startServer();
        wwwTask.startServer();
    }

    /**
     Stops the Smtp, Pop3, and Password Servers
     **/

    public void stop()
    {
        write( "Stopping DixieMail Server..." );
        mailTask.stopServer();
        popTask.stopServer();
        passTask.stopServer();
        wwwTask.stopServer();

        while ( !mailTask.stopped ||
                !popTask.stopped ||
                !passTask.stopped ||
                !wwwTask.stopped )
        {
            try
            {
                Thread.sleep( 100 );
            }
            catch ( java.lang.InterruptedException e )
            {
            }
        }
    }

    public void windowClosing( WindowEvent e )
    {
        stop();
        this.setVisible( false );
        System.exit(0);
    }
}



⌨️ 快捷键说明

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