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

📄 admin.java

📁 java开源邮件服务器 smtp pop3
💻 JAVA
字号:
import java.io.*;
import java.awt.*;

/**
 Admin auto respond server
 **/

public class Admin extends Extension implements Runnable
{
    dixie  log;
    String thisDomain;
    String to;
    String from;
    String letter;
    String data;

    public Admin()
    {
    }

    public Admin( dixie logx )
    {
        log = logx;
    }

    public void execute( dixie  logx, String thisDomainx, String tox,
                         String fromx, String letterx, String datax )
    {
        log        = logx;
        thisDomain = thisDomainx;
        to         = tox;
        from       = fromx;
        letter     = letterx;
        data       = datax;

        Thread listener = new Thread( this );
        listener.start();
    }

    /*
    String argument( String thisLine )
    {
        int iny = 0;
        int maxArg = 255;
        StringBuffer retVal = new StringBuffer();

        while ( ( iny < thisLine.length() ) &&
                ( iny < maxArg ) &&
                ( thisLine.charAt( iny ) != ' ' ) )
        {
            iny++;
        }

        //retVal.append("("+iny+")");

        while ( ( iny < thisLine.length() ) &&
                ( iny < maxArg ) &&
                ( thisLine.charAt(iny) == ' ' ) )
        {
            iny++;
        }
        //retVal.append("("+iny+")");

        while ( ( iny < thisLine.length() ) &&
                ( iny < maxArg ) )
        {
            retVal.append( thisLine.charAt( iny ) );
            iny++;
        }

        //retVal.append("("+iny+")");
        return retVal.toString();
    } */



    public void run()
    {
        int inx;
        int iny;
        StringBuffer currentDirectory = new StringBuffer( "." );
        StringBuffer newLetter = new StringBuffer();
        String thisLine;
        String fileName;
        //String theFile;
        //File fileHandle;
        String files[];
        int in;
        boolean authorized = false;

        newLetter.append( "To: "+from+cr );
        newLetter.append( "From: The Admin Server"+cr );
        newLetter.append( "Subject: Admin Program Results"+cr );

        try
        {
            for ( inx = 0; inx < numberOfLines( letter ); inx++ )
            {
                thisLine = getLine( letter, inx );

                if ( thisLine.startsWith("help" ) )
                {
                    newLetter.append( StringTools.getFile( "admin.hlp" ) );
                }
                else if ( thisLine.startsWith( "user" ) )
                {
                    if ( argument( thisLine ).length() == 0 )
                    {
                        newLetter.append( "Need a user=password combo"+cr );
                    }
                    else if ( argument( thisLine ).indexOf( '=' ) == -1 )
                    {
                        newLetter.append( "Need an equals sign"+cr );
                    }
                    else
                    {
                        //authorized = lineInFile( "users", argument( thisLine ) );

                        if ( authorized )
                        {
                            authorized = true;
                            newLetter.append( cr+"Authorization accepted"+cr+cr );
                        }
                        else
                        {
                            newLetter.append( cr+"Authorization denied!"+cr );
                            newLetter.append( "Remainder of letter will be ignored."+cr+cr );
                            inx = numberOfLines( letter );
                        }
                    }
                }
                else if ( authorized )
                {
                    if ( thisLine.startsWith( "newuser" ) )
                    {
                        //addToFile( "users", argument( thisLine ) );
                        newLetter.append( "Added."+cr );
                    }
                    else if ( thisLine.startsWith( "deleteuser" ) )
                    {
                        //removeFrom( "users", argument( thisLine ) );
                        newLetter.append( "Deleted."+cr );
                    }
                    else if ( thisLine.startsWith( "get" ) )
                    {
                        newLetter.append( ">" + thisLine + cr+cr );
                        newLetter.append( StringTools.getFile( argument( thisLine ) ) );
                    }
                    else if ( thisLine.equals("dir") )
                    {
                        newLetter.append( ">" + thisLine + cr+cr );
                        File x = new File( currentDirectory.toString() );
                        files = x.list();

                        for ( iny = 0; iny < files.length; iny++ )
                        {
                            newLetter.append( "-> " + files[iny]+cr );
                        }
                    }
                    else if ( thisLine.startsWith( "cd " ) )
                    {
                        newLetter.append( ">" + thisLine + cr+cr );
                        fileName = argument( thisLine );
                        currentDirectory.append( java.io.File.separator+argument(thisLine) );
                        newLetter.append( "-> " + currentDirectory+cr );
                    }
                    else if ( thisLine.startsWith( "run " ) )
                    {
                        newLetter.append( ">" + thisLine + cr );

                        try
                        {
                            Process p = java.lang.Runtime.getRuntime().exec( argument(thisLine) );
                            InputStream o = p.getInputStream();

                            do
                            {
                                in = o.read();

                                if ( in != -1 )
                                {
                                    newLetter.append( in );
                                }
                            }
                            while ( in != -1 );

                            o.close();
                            newLetter.append( "Completed."+cr );
                        }
                        catch ( java.io.IOException exc )
                        {
                            newLetter.append( "Could not execute:"+cr );
                            newLetter.append( exc.toString()+cr);
                        }
                    }
                }
            }
        }
        catch ( Exception e ) { }

        /** Do not save letters or return to sender if not possible **/

        Forwarder forwarder = new Forwarder(
            thisDomain, from, to, newLetter.toString(), log, // Was log
            "Admin to "+from, null, false );
    }
}


⌨️ 快捷键说明

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