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

📄 emailservice.java

📁 Software Testing Automation Framework (STAF)的开发代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                        resolvedValue = STAFUtil.resolveRequestVar(                            parsedRequest.optionValue("textattachment", i + 1),                            fHandle, info.requestNumber);                        if (resolvedValue.rc != 0) return resolvedValue;                                                textAttachments.add(resolvedValue.result);                    }                }                if (parsedRequest.optionTimes("binaryattachment") > 0)                {                    int binaryAttachmentCount =                         parsedRequest.optionTimes("binaryattachment");                                            for (int i = 0; i < binaryAttachmentCount; i++)                    {                        resolvedValue = STAFUtil.resolveRequestVar(                            parsedRequest.optionValue("binaryattachment",                             i + 1), fHandle, info.requestNumber);                        if (resolvedValue.rc != 0) return resolvedValue;                                                binaryAttachments.add(resolvedValue.result);                    }                }                String message = "SEND TO " + toList.toString() + " FROM " +                                 from + " SUBJECT " + subjectOption +                                 " CONTENTTYPE " + contentType;                if (textAttachments.size() > 0)                {                    message += " TEXTATTACHMENTS " + textAttachments.toString();                }                if (binaryAttachments.size() > 0)                {                    message += " BINARYATTACHMENTS " +                                 binaryAttachments.toString();                }                fHandle.submit2(                    "local", "LOG", "LOG MACHINE LOGNAME " + fServiceName +                    " LEVEL info MESSAGE " + STAFUtil.wrapData(message));                for (int j = 0; j < toList.size(); j++)                {                    String level = "";                    String to = (String)toList.elementAt(j);                    fSocket = new Socket(fMailserver, fMailport);                    fInStream = new BufferedReader(                        new InputStreamReader(fSocket.getInputStream()));                    fOutStream = new PrintStream(fSocket.getOutputStream());                    reply = fInStream.readLine();                    level = (reply.startsWith("4") || reply.startsWith("5")) ?                        "error" : "info";                    fHandle.submit2("local", "LOG", "LOG MACHINE LOGNAME " +                        fServiceName + " LEVEL " + level + "  MESSAGE " +                        STAFUtil.wrapData(reply));                    if (level.equals("error"))                        return new STAFResult(                           new Integer("4" + reply.substring(0, 3)).intValue(),                           reply);                    fOutStream.print("HELO " + fHostname);                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    reply = fInStream.readLine();                    level = (reply.startsWith("4") || reply.startsWith("5")) ?                        "error" : "info";                    fHandle.submit2("local", "LOG", "LOG MACHINE LOGNAME " +                        fServiceName + " LEVEL " + level + "  MESSAGE " +                        STAFUtil.wrapData(reply));                    if (level.equals("error"))                        return new STAFResult(                           new Integer("4" + reply.substring(0, 3)).intValue(),                           reply);                    fOutStream.print("MAIL FROM:  " + from);                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    reply = fInStream.readLine();                    level = (reply.startsWith("4") || reply.startsWith("5")) ?                        "error" : "info";                    fHandle.submit2("local", "LOG", "LOG MACHINE LOGNAME " +                        fServiceName + " LEVEL " + level + "  MESSAGE " +                        STAFUtil.wrapData(reply));                    if (level.equals("error"))                        return new STAFResult(                           new Integer("4" + reply.substring(0, 3)).intValue(),                           reply);                    fOutStream.print("RCPT TO:  " + to);                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    reply = fInStream.readLine();                    level = (reply.startsWith("4") || reply.startsWith("5")) ?                        "error" : "info";                    fHandle.submit2("local", "LOG", "LOG MACHINE LOGNAME " +                        fServiceName + " LEVEL " + level + "  MESSAGE " +                        STAFUtil.wrapData(reply));                    if (level.equals("error"))                        return new STAFResult(                           new Integer("4" + reply.substring(0, 3)).intValue(),                           reply);                    fOutStream.print("DATA");                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    // Some external SMTP servers require the following line                    fInStream.readLine();                    fOutStream.print("MIME-Version: 1.0");                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    fOutStream.print("To: " + to);                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    fOutStream.print("Subject: " + subjectOption);                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    fOutStream.print("From: " + from);                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    String strBoundary = "DataSeparatorString";                    fOutStream.print("Content-Type: multipart/mixed; " +                         "boundary=\"" + strBoundary + "\"");                    fOutStream.println(fLineEnd);                    fOutStream.flush();                                        fOutStream.print("--" + strBoundary);                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    fOutStream.print("Content-Type: " + contentType +                                     "; charset=us-ascii");                    fOutStream.println(fLineEnd);                    fOutStream.flush();                                        fOutStream.print("Content-Transfer-Encoding: 7bit");                    fOutStream.println(fLineEnd);                    fOutStream.flush();                                        fOutStream.print("");                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    if (includeHeader)                    {                        if (contentType.equals(sTextPlainContentType))                        {                            fOutStream.print(sPlainHeader);                        }                        else                        {                            fOutStream.print(sHtmlHeader);                        }                        fOutStream.println(fLineEnd);                        fOutStream.flush();                    }                    fOutStream.print(messageOption);                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    for (int k = 0; k < textAttachments.size(); k++)                    {                        String attachmentFile =                            (String)textAttachments.elementAt(k);                        int forwardSlashIndex = attachmentFile.lastIndexOf("/");                        int backwardSlashIndex =                            attachmentFile.lastIndexOf("\\");                        int filenameIndex;                        if (forwardSlashIndex > backwardSlashIndex)                            filenameIndex = forwardSlashIndex;                        else                            filenameIndex = backwardSlashIndex;                        String attachmentFileName =                            attachmentFile.substring(filenameIndex);                        STAFResult fileResult =                            fHandle.submit2(attachmentMachine,                                            "FS", "GET FILE " + attachmentFile +                                            " text");                        if (fileResult.rc != STAFResult.Ok)                            return fileResult;                        fOutStream.print("--" + strBoundary);                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("Content-Type: text/plain; name=\"" +                            attachmentFileName + "\"");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("Content-Transfer-Encoding: 7bit");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("Content-Disposition: attachment; " +                            "filename=\"" + attachmentFileName + "\"");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("Content-Description: Form Results");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print(fileResult.result);                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("--" + strBoundary);                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                    }                    for (int k = 0; k < binaryAttachments.size(); k++)                    {                        String attachmentFile =                            (String)binaryAttachments.elementAt(k);                        int forwardSlashIndex = attachmentFile.lastIndexOf("/");                        int backwardSlashIndex =                            attachmentFile.lastIndexOf("\\");                        int filenameIndex;                        if (forwardSlashIndex > backwardSlashIndex)                            filenameIndex = forwardSlashIndex;                        else                            filenameIndex = backwardSlashIndex;                        String attachmentFileName =                            attachmentFile.substring(filenameIndex);                        STAFResult fileResult =                            fHandle.submit2(attachmentMachine,                                            "FS", "GET FILE " + attachmentFile +                                            " binary");                        if (fileResult.rc != STAFResult.Ok)                            return fileResult;                        fOutStream.print("--" + strBoundary);                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("Content-Type: " +                            "application/octet-stream; name=\"" +                            attachmentFileName + "\"");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("Content-Transfer-Encoding: base64");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("Content-Disposition: attachment; " +                            "filename=\"" + attachmentFileName + "\"");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("Content-Description: Form Results");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        String getFileResult = fileResult.result;                        byte[] fileContent =                             new byte[getFileResult.length() / 2];                        fileContent[0] = (byte)Integer.parseInt(                            getFileResult.substring(0, 2), 16);                        for (int i = 1; i < fileContent.length; i++)                        {                            fileContent[i] = (byte)                                Integer.parseInt(getFileResult.substring(                                                 i*2, i*2 + 2), 16);                        }                        byte[] base64FileContent =                             base64.encodeBase64Chunked(fileContent);                        fOutStream.write(base64FileContent, 0,                                         base64FileContent.length);                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("--" + strBoundary);                        fOutStream.println(fLineEnd);                        fOutStream.flush();                        fOutStream.print("");                        fOutStream.println(fLineEnd);                        fOutStream.flush();                    }                    fOutStream.print(fLineEnd);                    fOutStream.print(".");                    fOutStream.println(fLineEnd);                    fOutStream.print("");                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    fOutStream.print("QUIT");                    fOutStream.println(fLineEnd);                    fOutStream.flush();                    reply = fInStream.readLine();                    level = (reply.startsWith("4") || reply.startsWith("5")) ?                        "error" : "info";                    fHandle.submit2("local", "LOG", "LOG MACHINE LOGNAME " +                        fServiceName + " LEVEL " + level + "  MESSAGE " +                        STAFUtil.wrapData(reply));                    if (level.equals("error"))                        return new STAFResult(                           new Integer("4" + reply.substring(0, 3)).intValue(),                           reply);                    fSocket.close();                }            }            catch ( IOException ioe )            {                String error = "Socket IO Error: " + ioe +                    " Mailserver: " + fMailserver + " Port: " + fMailport;                fHandle.submit2("local", "LOG", "LOG MACHINE LOGNAME " +                        fServiceName + " LEVEL error MESSAGE " +                        STAFUtil.wrapData(error));                return new STAFResult(IOEXCEPTION, error);            }        }        catch (Exception e)        {            return new STAFResult(STAFResult.JavaError,                                  "Internal Java error.");        }        return new STAFResult(STAFResult.Ok, resultString);    }    public STAFResult term()    {        // Un-register the service handle        try        {            fHandle.unRegister();        }        catch (STAFException ex)        {            return new STAFResult(                STAFResult.STAFRegistrationError, ex.toString());        }        return new STAFResult(STAFResult.Ok);    }}

⌨️ 快捷键说明

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