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

📄 dixie.java

📁 java开源邮件服务器 smtp pop3
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.lang.reflect.*;
import StringTools;

/**
 Simple class to start and control the mail (Smtp, Pop3, and Epass) servers.
 Comments:
 970915 Original code, lots of modifications
 971006 Added real top processing
 971027 More cleanup, focus on SMTP, forwarding
 98xxxx Made into windows driven stuff
 990110 Even more cleanup
 990326 Split into separate files
 20 Feb 2000 Made event states into anonymous classes
 02 Mar 2000 Added WWW Server
 12 Mar 2000 Removed most of the menu driven options
 **/


/**
 * Create a frame that can be closed; only used if run standalone.
 */

class dixie extends CFrame
{
    private MenuBar menu;
    private Letters letters;
    public  SmtpServer mailTask;
    private Pop3Server popTask;
    private EpassServer passTask;
    private WWWServer wwwTask;
    private FileWriter wout;
    private boolean debugDixie = true;
    private MainDialog f;
    private CheckboxMenuItem debugBox;
    private CheckboxMenuItem monitorBox;
    private CheckboxMenuItem showStatusBox;

    final private String dixiePropsString      = "DixieMail.cfg";
    final private String versionString         = "DixieMail v1.7";
    final private String authorString          = "James Ghofulpo";
    final private String homepageString        = "http://welcome.to/reality";
    final private String monitorProp           = "monitorString";
    final private String debugProp             = "debugString";
    final private String monitorConnectProp    = "monitorConnect";
    final private String clearLogProp          = "clearLog";
    final private String extensionsProp        = "extensions";
    final private String optionsProp           = "options";
    final private String showSplashScreenProp  = "showSplash";
    final private String hideMainWindowProp    = "hideMainWindow";
    final private String lastValue             = "none";
    final private String nullProperty          = "<none>";
    final private String generalHelpProp       = "generalHelp";
    final public String extensionListProp      = "extensionList";
    final public String languageHeader         = "language.";
    final public String usersHeader            = "users.";
    final public String extensionHeader        = "extension.";
    final public String passwordTrailer        = ".password";
    final private String extensionTrailer      = ".extension";
    final private String parameterTrailer      = ".parameter";
    final public String invalidExtension       = ".";
    final public String htmlHelp               = "htmlHelp";
    final private String outgoingName          = "dixiemail.outgoing";
    final private String servedDomainsName     = "dixiemail.served";
    final private String configFileDescription = "DixieMail Configuration";

    public Config configuration;
    public Properties dixieProps;

    public static final int DM_WWW  = 1;
    public static final int DM_SMTP = 2;
    public static final int DM_POP3 = 3;
    public static final int DM_PASS = 4;

    String getVersionString()
    {
        return versionString;
    }

    String getAuthorString()
    {
        return authorString;
    }

    String getHomepageString()
    {
        return homepageString;
    }

    String getNullProperty()
    {
        return nullProperty;
    }

    private String getString( String propname )
    {
        return dixieProps.getProperty( languageHeader+propname,
                                       languageHeader+propname );
    }


    String getInfo( String propname )
    {
        return dixieProps.getProperty( propname, propname );
    }

    public void setServedDomains( String value )
    {
        if ( value.length() == 0 )
        {
            value = nullProperty;
        }

        configuration.ServedDomains = value;
        dixieProps.put( servedDomainsName, value );
        saveProperties();
    }

    public void setOutgoingSMTP( String value )
    {
        if ( value.length() == 0 )
        {
            value = nullProperty;
        }

        configuration.OutgoingServer = value;
        dixieProps.put( outgoingName, value );
        saveProperties();
    }

    public void showMainWindow( boolean show )
    {
         this.setVisible( show );
    }

    void saveProperties()
    {
        StringTools.saveProps( dixieProps, dixiePropsString,
                               configFileDescription );
    }

    //***************************************************************
    // main
    //
    //     Main function - Instantiates new instance of Dixie
    //***************************************************************

    public static void main( String argv[] )
    {
        new dixie( "dixie.gif" );
    }

    //***************************************************************
    // getUser
    //
    //     Returns user information
    //***************************************************************

    public User getUser( String userName )
    {
        User info = new User();

        info.password  = dixieProps.getProperty( 
                             usersHeader+userName+passwordTrailer,
                             User.invalidPassword );                                        
        info.parameter = getInfo( usersHeader+userName+parameterTrailer );
        info.extension = getInfo( usersHeader+userName+extensionTrailer );
        info.userName  = userName;

        return info;
    }


    //***************************************************************
    // getPassword
    //
    //     Returns a users password
    //***************************************************************

    public String getPassword( String user )
    {
        User info;

        info = getUser( user );

        return dixieProps.getProperty( usersHeader+user+
             passwordTrailer, User.invalidPassword );
    }


    //***************************************************************
    // validUser
    //
    //     Checks if a user/password combination is valid
    //***************************************************************

    public boolean validUser( String user, String password )
    {
        if ( dixieProps.getProperty( usersHeader+user+
             passwordTrailer, User.invalidPassword ).equals( password ) )
        {
            return true;
        }

        return false;
    }

    //***************************************************************
    // deleteUser
    //
    //     Deletes a user
    //***************************************************************

    public void deleteUser( String user )
    {
        dixieProps.remove( usersHeader+user+extensionTrailer );
        dixieProps.remove( usersHeader+user+passwordTrailer );
        dixieProps.remove( usersHeader+user+parameterTrailer );
        saveProperties();
    }

    //***************************************************************
    // addUser
    //
    //     Changes/adds a user/password combination
    //***************************************************************

    public void addUser( User user )
    {
        deleteUser( user.userName );
        dixieProps.put( usersHeader+user.userName+passwordTrailer,
                        user.password );
        dixieProps.put( usersHeader+user.userName+extensionTrailer,
                        user.extension );
        dixieProps.put( usersHeader+user.userName+parameterTrailer,
                        user.parameter );
        saveProperties();
    }



    //***************************************************************
    // changePassword
    //
    //     Changes/adds a user/password combination
    //***************************************************************

    public void changePassword( String user, String password )
    {
        deleteUser( user );
        dixieProps.put( usersHeader+user+passwordTrailer, password );
        dixieProps.put( usersHeader+user+extensionTrailer, invalidExtension );
        dixieProps.put( usersHeader+user+parameterTrailer, invalidExtension );
        saveProperties();
    }

    //***************************************************************
    // dixie
    //
    //     Main function - Builds menus and anonymous classes for
    //     the actions that need to be performed in them
    //***************************************************************

    public dixie( String iconName )
    {
        Menu   subMenu;
        CheckboxMenuItem cbox;
        String tempProperty;
        String extension;
        int    inx;
        MenuItem temp;

        configuration = new Config();

⌨️ 快捷键说明

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