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

📄 emailservice.java

📁 Software Testing Automation Framework (STAF)的开发代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        {            return handleList(info);        }        else if (lowerRequest.startsWith("set"))        {            return handleSet(info);        }        else if (lowerRequest.startsWith("help"))        {            return handleHelp(info);        }        else if (lowerRequest.startsWith("version"))        {            return handleVersion(info);        }        else        {            return new STAFResult(STAFResult.InvalidRequestString,                                  "Unknown Email Request: " +                                  lowerRequest);        }    }    private STAFResult handleHelp(STAFServiceInterfaceLevel30.RequestInfo info)    {        // Verify the requester has at least trust level 1        STAFResult trustResult = STAFUtil.validateTrust(            1, fServiceName, "HELP", fLocalMachineName, info);        if (trustResult.rc != STAFResult.Ok) return trustResult;        return new STAFResult(STAFResult.Ok,         "EMAIL Service Help"         + fLineSep + fLineSep + "SEND TO <Address>... [FROM <user@company.com>] [CONTENTTYPE <contenttype>]"         + fLineSep + "     < MESSAGE <Message> | FILE <File> [MACHINE <Machine>] >"         + fLineSep + "     [SUBJECT <Subject>] [NOHEADER] [TEXTATTACHMENT <file>]..."         + fLineSep + "     [BINARYATTACHMENT <file>]... [ATTACHMENTMACHINE <machine>]"         + fLineSep + "     [RESOLVEMESSAGE | NORESOLVEMESSAGE]"         + fLineSep + fLineSep + "LIST SETTINGS"         + fLineSep + fLineSep + "SET  [MAILSERVER <mailserver>]"         + fLineSep + "     [PORT <mailport>]"         + fLineSep + "     [CONTENTTYPE <contenttype>]"         + fLineSep + "     [RESOLVEMESSAGE | NORESOLVEMESSAGE]"         + fLineSep + "     [LINEEND <lineend>]"         + fLineSep + fLineSep + "VERSION"         + fLineSep + fLineSep + "HELP");    }    private STAFResult handleVersion(STAFServiceInterfaceLevel30.RequestInfo info)    {        // Verify the requester has at least trust level 1        STAFResult trustResult = STAFUtil.validateTrust(            1, fServiceName, "VERSION", fLocalMachineName, info);        if (trustResult.rc != STAFResult.Ok) return trustResult;        return new STAFResult(STAFResult.Ok, kVersion);    }    private STAFResult handleList(STAFServiceInterfaceLevel30.RequestInfo info)    {        // Verify the requester has at least trust level 2        STAFResult trustResult = STAFUtil.validateTrust(            2, fServiceName, "LIST", fLocalMachineName, info);        if (trustResult.rc != STAFResult.Ok) return trustResult;        // Parse the result        STAFCommandParseResult parsedRequest = fListParser.parse(info.request);        if (parsedRequest.rc != STAFResult.Ok)        {            return new STAFResult(STAFResult.InvalidRequestString,                                  parsedRequest.errorBuffer);        }                  // LIST SETTINGS        // Create the marshalling context        STAFMarshallingContext mc = new STAFMarshallingContext();        mc.setMapClassDefinition(fSettingsMapClass);        Map outputMap = fSettingsMapClass.createInstance();        outputMap.put("mailServer", fMailserver);        outputMap.put("port", new Integer(fMailport));        outputMap.put("contentType", fContentType);                if (fResolveMessage)        {            outputMap.put("resolveMessage", "Enabled");        }        else        {            outputMap.put("resolveMessage", "Disabled");        }        mc.setRootObject(outputMap);        return new STAFResult(STAFResult.Ok, mc.marshall());    }    private STAFResult handleSet(STAFServiceInterfaceLevel30.RequestInfo info)    {        // Verify the requester has at least trust level 5        STAFResult trustResult = STAFUtil.validateTrust(            5, fServiceName, "SET", fLocalMachineName, info);        if (trustResult.rc != STAFResult.Ok) return trustResult;        // Parse the result        STAFCommandParseResult parsedRequest = fSetParser.parse(info.request);        if (parsedRequest.rc != STAFResult.Ok)        {            return new STAFResult(STAFResult.InvalidRequestString,                                  parsedRequest.errorBuffer);        }        STAFResult resolvedValue = null;        fHandle.submit2(            "local", "LOG", "LOG MACHINE LOGNAME " + fServiceName +            " LEVEL info MESSAGE " + STAFUtil.wrapData(info.request));        if (parsedRequest.optionTimes("mailserver") > 0)        {            resolvedValue = STAFUtil.resolveRequestVar(                parsedRequest.optionValue("mailserver"),                fHandle, info.requestNumber);            if (resolvedValue.rc != 0) return resolvedValue;            fMailserver = resolvedValue.result;        }        if (parsedRequest.optionTimes("mailport") > 0)        {            resolvedValue = STAFUtil.resolveRequestVar(                parsedRequest.optionValue("mailport"),                fHandle, info.requestNumber);            if (resolvedValue.rc != 0) return resolvedValue;            fMailport = (new Integer(resolvedValue.result).intValue());        }        if (parsedRequest.optionTimes("CONTENTTYPE") > 0)        {            STAFResult resolvedResult = STAFUtil.resolveInitVar(                parsedRequest.optionValue("CONTENTTYPE"), fHandle);            if (resolvedResult.rc != STAFResult.Ok)            {                return resolvedResult;            }             if (!(resolvedResult.result.equals(sTextPlainContentType)) &&                !(resolvedResult.result.equals(sTextHtmlContentType)))            {                return new STAFResult(STAFResult.InvalidValue,                                       resolvedResult.result);            }            fContentType = resolvedResult.result;        }        if (parsedRequest.optionTimes("RESOLVEMESSAGE") > 0)        {            fResolveMessage = true;        }        else if (parsedRequest.optionTimes("NORESOLVEMESSAGE") > 0)        {            fResolveMessage = false;        }        if (parsedRequest.optionTimes("lineend") > 0)        {            resolvedValue = STAFUtil.resolveRequestVar(                parsedRequest.optionValue("lineend"),                fHandle, info.requestNumber);            if (resolvedValue.rc != 0) return resolvedValue;            fLineEnd = resolvedValue.result;        }        return new STAFResult(STAFResult.Ok, "");    }    private synchronized STAFResult handleSend(                                   STAFServiceInterfaceLevel30.RequestInfo info)    {        // Verify the requester has at least trust level 3        STAFResult trustResult = STAFUtil.validateTrust(            3, fServiceName, "SEND", fLocalMachineName, info);        if (trustResult.rc != STAFResult.Ok) return trustResult;        STAFResult result = new STAFResult(STAFResult.Ok, "");        String resultString = "";        Vector toList = new Vector();        String messageOption = "";        String contentType = fContentType;        String subjectOption = "";        STAFResult resolvedValue = null;        Vector textAttachments = new Vector();        Vector binaryAttachments = new Vector();        String attachmentMachine = info.endpoint;        boolean includeHeader = true;        try        {            STAFCommandParseResult parsedRequest = fSendParser.parse(                info.request);            if (parsedRequest.rc != STAFResult.Ok)            {                return new STAFResult(STAFResult.InvalidRequestString,                                      parsedRequest.errorBuffer);            }                        int toTimes = parsedRequest.optionTimes("to");            for (int i = 0; i < toTimes; i++)            {                resolvedValue = STAFUtil.resolveRequestVar(                    parsedRequest.optionValue("to", i + 1),                    fHandle, info.requestNumber);                if (resolvedValue.rc != 0) return resolvedValue;                toList.add(resolvedValue.result);            }            if (parsedRequest.optionTimes("subject") > 0)            {                resolvedValue = STAFUtil.resolveRequestVar(                    parsedRequest.optionValue("subject"),                    fHandle, info.requestNumber);                if (resolvedValue.rc != 0) return resolvedValue;                subjectOption = resolvedValue.result;            }            if (parsedRequest.optionTimes("noheader") > 0)            {                includeHeader = false;            }            boolean resolveCurrentMessage = fResolveMessage;            if (parsedRequest.optionTimes("resolvemessage") > 0)            {                resolveCurrentMessage = true;            }            else if (parsedRequest.optionTimes("noresolvemessage") > 0)            {                resolveCurrentMessage = false;            }            if (parsedRequest.optionTimes("message") == 1)            {                if (resolveCurrentMessage)                {                    resolvedValue = STAFUtil.resolveRequestVar(                        parsedRequest.optionValue("message"),                        fHandle, info.requestNumber);                    if (resolvedValue.rc != 0) return resolvedValue;                    messageOption = resolvedValue.result;                }                else                {                    messageOption = parsedRequest.optionValue("message");                }            }            else if (parsedRequest.optionTimes("file") == 1)            {                String fileMachine = info.endpoint;                if (parsedRequest.optionTimes("machine") == 1)                {                    resolvedValue = STAFUtil.resolveRequestVar(                        parsedRequest.optionValue("machine"),                        fHandle, info.requestNumber);                    if (resolvedValue.rc != 0) return resolvedValue;                    fileMachine = resolvedValue.result;;                }                STAFResult fsGetResult = fHandle.submit2(                    fileMachine, "FS", "GET FILE " +                    parsedRequest.optionValue("file"));                if (fsGetResult.rc == 0)                {                    messageOption = fsGetResult.result;                }                else                {                    return fsGetResult;                }            }            if (parsedRequest.optionTimes("contenttype") == 1)            {                resolvedValue = STAFUtil.resolveRequestVar(                    parsedRequest.optionValue("contenttype"),                    fHandle, info.requestNumber);                if (resolvedValue.rc != 0) return resolvedValue;                contentType = resolvedValue.result;                if (!(contentType.equals(sTextPlainContentType)) &&                    !(contentType.equals(sTextHtmlContentType)))                {                    return new STAFResult(STAFResult.InvalidValue, contentType);                }            }            String reply;            try            {                try                {                    InetAddress ipaddress = InetAddress.getLocalHost();                    if ((fHostname = ipaddress.getHostName()) == null)                    {                        fHostname = "localhost";                    }                    else                    {                        ipaddress = InetAddress.getByName(                            ipaddress.getHostAddress());                        fHostname = ipaddress.getHostName();                    }                }                catch (UnknownHostException uhe)                {                      fHostname = "localhost";                }                String from = "STAFEmailService@" + fHostname;                if (parsedRequest.optionTimes("from") > 0)                {                    resolvedValue = STAFUtil.resolveRequestVar(                        parsedRequest.optionValue("from"),                        fHandle, info.requestNumber);                        if (resolvedValue.rc != 0) return resolvedValue;                        from = resolvedValue.result;                }                int index = messageOption.indexOf("\\n");                String tmpStr = "";                String CR = "";                while (index >= 0)                {                    tmpStr = tmpStr + CR +                        messageOption.substring(0, index);                    CR = "\n";                    messageOption = messageOption.substring(index+2);                    index = messageOption.indexOf("\\n");                }                tmpStr = tmpStr + CR + messageOption;                messageOption = tmpStr;                if (parsedRequest.optionTimes("attachmentmachine") > 0)                {                    resolvedValue = STAFUtil.resolveRequestVar(                        parsedRequest.optionValue("attachmentmachine"),                        fHandle, info.requestNumber);                    if (resolvedValue.rc != 0) return resolvedValue;                    attachmentMachine = resolvedValue.result;                }                if (parsedRequest.optionTimes("textattachment") > 0)                {                    int textAttachmentCount =                         parsedRequest.optionTimes("textattachment");                                            for (int i = 0; i < textAttachmentCount; i++)                    {

⌨️ 快捷键说明

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