亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? smtp.java

?? 作者:【美】Al Williams中國水利水電出版社 包含Telnet、FTP、TFTP、SMTP、POP3等協(xié)議網(wǎng)絡設計的代碼
?? JAVA
字號:
package com.al_williams.SMTP;import java.awt.*;import java.net.*;import java.util.*;import java.io.*;/** * SMTP Class. You can use this class to  * send e-mail via a SMTP server. From the  * Java@Work column in <A HREF=http://www.webtechniques.com>Web Techniques</A>. * You can find more info about E-mail and SMTP via the RFC's particularly * <A HREF=http://www.faqs.org/rfcs/rfc821.html>RFC821</A> and  * <A HREF=http://www.faqs.org/rfcs/rfc822.html>RFC822</A>  * @author Al Williams * @version 1.1 */public class SMTP{    // things you might want to change    // 30 seconds timeout    final static int WAIT_TIMEOUT = ( 30 * 1000 );    public static int smtpPort = 25;    final static String addressSep = ";";  // separates e-mail addresses// SMTP server for testing    final static String testServer = "localhost";        String smtpServer;    // could hardcode this    MailMessage message;    String hostname;    BufferedReader input;    OutputStream output;    String errorText;     // copy of last response -- in case of error    Socket sock;            final String crlf = "\r\n";    /**     * Get the last response message. Useful for displaying error from SMTP server.     * @returns String containing last response from server.     */    public String getLastResponse()     {     if (errorText==null) return "Unable to connect or unknown error";     return errorText;     }    /**     * This is a test main -- if you run SMTP it will send an e-mail     * @param args The command line arguments     */    public static void main( String args [] )    {        int rc;        Date today = new Date();        if (args.length!=1)        {          System.out.println("Usage: SMTP e-mail address");          System.exit(1);        }        System.out.println("Sending test message to " + args[0]);        MailMessage msg = new MailMessage( "alw@al-williams.com", args[0], "Test",             "Sent at " + today.toString());        SMTP smtp = new SMTP( testServer);        rc = smtp.sendMail( msg );        if( rc != 0 )         {          System.out.println( "Error " + rc );          System.out.println(smtp.getLastResponse());        }        else           System.out.println( "OK" );            }    /**     * Constructor. Requires SMTP server name.     * @param host An SMTP server. Remember, the server must be accessible from this code.     *             In particular, applets can usually only connect back to the same host     *             they originated from.     */            public SMTP( String host )    {        smtpServer = host;    }      //read data from input stream to buffer String        private int getResponse( int expect1 ) throws IOException    {        return getResponse( expect1, - 1 );    }        synchronized private int getResponse( int expect1, int expect2 ) throws IOException    {        boolean defStatus;        long startTime;        int replyCode;                TimeoutRead thread = new TimeoutRead( input );        thread.setBuffer("");        thread.start();        try        {            thread.join( WAIT_TIMEOUT );        }        catch( InterruptedException e )        {        }        if( thread.isComplete() && thread.getBuffer().length() > 0 )        {            try            {                errorText = thread.getBuffer();  // if there is an error, this is it.                replyCode = Integer.valueOf( errorText.substring( 0, 3 ) ).intValue();                if( replyCode == 0 ) return - 1;                if( replyCode == expect1 || replyCode == expect2 ) return 0;                return replyCode;            }            catch( NumberFormatException e )            {                return - 1;            }        }        return - 1;        // nothing in buffer    }                private void writeString( String s ) throws IOException    {	// debugging	//	System.out.println(s);        output.write( s.getBytes() );    }    private int sendAddresses(String pfx, String addr) throws IOException    {       int n0=0;       int n;       int rv=0;       while (rv==0 && (n=addr.indexOf(addressSep,n0))!=-1)          {          writeString(pfx+addr.substring(n0,n)+crlf);	  n0=n+1;          rv=getResponse( SMTPResults.SMTP_RESULT_COMPLETED, SMTPResults.SMTP_RESULT_FORWARD );          }       if (rv==0)       {         writeString(pfx+addr.substring(n0)+crlf);         rv=getResponse( SMTPResults.SMTP_RESULT_COMPLETED, SMTPResults.SMTP_RESULT_FORWARD );       }       return rv;     }    /**     * Use sendMail to actually send an e-mail message.     * @param MailMessage This is a filled-in MailMessage object that specifies the text, subject, and recipients.     * @return Zero if successful. Otherwise, it returns the SMTP return code.     * @see SMTPResults     */        public int sendMail(MailMessage msg) {	return sendMail(msg,null);    }    public int sendMail( MailMessage msg ,Hashtable headers)    {        String inBuffer;        String outBuffer;        int rv;        message = msg;        if( msg.to == null || msg.to.length() == 0 )        {            return - 1;        }        // Create connection	                try        {            sock = new Socket( smtpServer, smtpPort );            hostname = "[" + sock.getLocalAddress().getHostAddress() + "]";        }        catch( IOException e )        {            return - 1;        }        //Create I/O streams        try        {            input = new BufferedReader( new InputStreamReader( sock.getInputStream() ) );        }        catch( IOException e )        {            return - 1;        }        try        {            output = sock.getOutputStream();        }        catch( IOException e )        {            return - 1;        }        rv=sendMailEngine(headers);// end connection        try        {            sock.close();	    sock=null;        }        catch( IOException e )        {            return - 1;        }        return rv;    }// this is a separate routine so the main sendMail can  always close the socketprivate int sendMailEngine(Hashtable headers)   {         try        {                        int replyCode;            int n;            Date today = new Date();            replyCode = getResponse( SMTPResults.SMTP_RESULT_READY );            if( replyCode != 0 ) return replyCode;            //Send HELO            writeString( "HELO " + hostname + crlf );            replyCode = getResponse( SMTPResults.SMTP_RESULT_COMPLETED );            if( replyCode != 0 ) return replyCode;            // Identify sender            writeString( "MAIL FROM: " + message.sender + crlf );            replyCode = getResponse( SMTPResults.SMTP_RESULT_COMPLETED );            if( replyCode != 0 ) return replyCode;            // Send to all recipients            replyCode = sendAddresses("RCPT TO: ",message.to);            if( replyCode != 0 ) return replyCode;            // Send to all CC's (if any)            if( message.cc != null && message.cc.length() != 0 )            {                replyCode = sendAddresses("RCPT TO: ",message.cc);                if( replyCode != 0 ) return replyCode;             }                // Send to all BCC's (if any)             if( message.bcc != null && message.bcc.length() != 0 )             {		    replyCode = sendAddresses("RCPT TO: ",message.bcc);                    if( replyCode != 0 ) return replyCode;              }                              // Send mesage                writeString( "DATA" + crlf );                replyCode = getResponse( SMTPResults.SMTP_RESULT_MAIL_START );                if( replyCode != 0 ) return replyCode;                                //Send mail content CRLF.CRLF                // Start with headers                writeString( "Subject: " + message.subject + crlf);                writeString( "From: " + message.sender + crlf);                writeString( "To: " + message.to + crlf);                if( message.cc != null && message.cc.length() != 0 )			writeString( "Cc: " + message.cc + crlf);                writeString( "X-Mailer: SMTP Java Class by Al Williams" + crlf );                writeString( "Comment: Unauthenticated sender" + crlf );		if (headers!=null) {		    Enumeration key = headers.keys();		    while (key.hasMoreElements()) {			String keystring=(String)key.nextElement();			writeString(keystring+":"+(String)headers.get(keystring)+crlf);		    }		}                writeString( "Date: " + today.toString() +crlf + crlf );// fix periods for transparency                StringBuffer body=new StringBuffer(message.body);                n=0;                do                {                  n=body.toString().indexOf("\n.",n);                  if (n!=-1) body.insert(++n,'.');                } while (n!=-1);                writeString( body.toString() );  // send body                writeString( crlf + "." + crlf );  // end mail                replyCode = getResponse( SMTPResults.SMTP_RESULT_COMPLETED );                if( replyCode != 0 ) return replyCode;                // Quit                writeString( "QUIT" + crlf );                replyCode = getResponse( SMTPResults.SMTP_RESULT_CLOSING );                if( replyCode != 0 ) return replyCode;        }        catch( IOException e )        {            return - 1;        }    return 0;    }    protected void finalize() throws Throwable   {     if (sock!=null) sock.close();     super.finalize();   }}// private class to handle the reading in a threadclass TimeoutRead extends Thread{    private String buffer = new String( "" );    private BufferedReader input;    private boolean complete = false;    synchronized String getBuffer() { return buffer; }    synchronized void setBuffer(String s) { buffer=s; }    synchronized public boolean isComplete()    {        return complete;    }    public TimeoutRead( BufferedReader i )    {        input = i;    }    public void run() // do input in thread     {        try        {            do            {               setBuffer(input.readLine());            } while (getBuffer().charAt(3)=='-'); // loop on multi-line response// This line is useful for debugging	    //               System.out.println(buffer);        }        catch( IOException e )        {            setBuffer("");        }        complete = true;    }    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区在线观看精品| 精品视频999| 欧美亚日韩国产aⅴ精品中极品| 91精品国产综合久久福利软件| 久久精品视频免费| 日韩成人一区二区三区在线观看| 国产91对白在线观看九色| 欧美一区二区视频观看视频| 亚洲欧美日韩中文播放| 国产乱码精品1区2区3区| 欧美日韩国产乱码电影| 中文字幕中文在线不卡住| 麻豆精品国产91久久久久久| 欧美在线免费观看视频| 欧美激情综合网| 国内精品国产三级国产a久久| 欧美精品日韩一本| 亚洲精品乱码久久久久久 | 色综合久久久久综合体| 国产嫩草影院久久久久| 久久99日本精品| 日韩欧美中文一区二区| 丝袜美腿亚洲综合| 欧美日韩精品一二三区| 亚洲一区二区美女| 色88888久久久久久影院野外| 中文字幕亚洲欧美在线不卡| 成人综合日日夜夜| 久久久久久久久久久黄色| 精品在线免费视频| 精品欧美乱码久久久久久| 麻豆国产一区二区| 精品成人私密视频| 国产美女视频一区| 26uuu国产日韩综合| 精品午夜一区二区三区在线观看| 亚洲私人黄色宅男| voyeur盗摄精品| 亚洲图片另类小说| 一本久久综合亚洲鲁鲁五月天 | 成人免费的视频| 欧美国产激情一区二区三区蜜月| 国产精品91xxx| 久久精品在线免费观看| 成人免费毛片app| 中文字幕欧美一| 色欧美日韩亚洲| 亚洲高清一区二区三区| 欧美福利电影网| 久久99久久99| 国产精品欧美一区二区三区| 99久久久久久| 亚洲chinese男男1069| 欧美大度的电影原声| 国产很黄免费观看久久| 国产精品网友自拍| 色播五月激情综合网| 天天综合天天综合色| 精品国产自在久精品国产| 国产成人日日夜夜| 亚洲最大的成人av| 91精品国产色综合久久不卡蜜臀 | 亚洲欧美影音先锋| 欧美日韩亚洲国产综合| 久热成人在线视频| 国产精品午夜在线| 欧美日韩日日摸| 激情国产一区二区| 一区二区三区蜜桃网| 欧美一区二区三区在线视频| 国产成人免费在线观看不卡| 亚洲美女视频在线观看| 欧美福利视频一区| 91同城在线观看| 天堂精品中文字幕在线| 国产日韩欧美高清| 欧美日韩国产经典色站一区二区三区| 蜜桃免费网站一区二区三区| 成人免费视频在线观看| 69p69国产精品| www.色综合.com| 久久99最新地址| 亚洲综合激情网| 国产精品素人视频| 9191成人精品久久| 99精品在线免费| 六月丁香综合在线视频| 亚洲一区二区在线免费看| 国产性做久久久久久| 91精品国产色综合久久不卡蜜臀 | 欧洲精品中文字幕| 国产一区不卡视频| 日韩电影在线看| 亚洲女性喷水在线观看一区| 精品国产伦理网| 欧美日韩精品欧美日韩精品一综合| 国产一区在线视频| 青椒成人免费视频| 亚洲综合精品自拍| 亚洲欧美乱综合| 久久久99久久| 精品捆绑美女sm三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产精品1区2区| 青草国产精品久久久久久| 亚洲高清视频中文字幕| 亚洲精品综合在线| 国产精品久久久久国产精品日日| 日韩亚洲欧美综合| 日韩亚洲欧美在线| 欧美日韩不卡在线| 欧美视频一区在线| 欧美亚洲丝袜传媒另类| 中文字幕高清一区| 欧美激情中文不卡| 国产精品女同互慰在线看| 国产欧美一区二区精品久导航 | 精品一区二区三区影院在线午夜| 午夜激情久久久| 亚洲国产精品久久人人爱蜜臀 | 色av成人天堂桃色av| 97se亚洲国产综合自在线| 99精品视频中文字幕| 91麻豆国产福利在线观看| aaa亚洲精品一二三区| 91丝袜国产在线播放| 色哟哟国产精品免费观看| www.欧美日韩| 日本乱人伦aⅴ精品| 欧美日韩国产小视频在线观看| 欧美日韩二区三区| 日韩精品专区在线影院观看| 欧美变态tickling挠脚心| 久久精品视频免费观看| 中文字幕精品三区| 亚洲人成网站影音先锋播放| 亚洲精品成人少妇| 午夜精品在线看| 六月婷婷色综合| 丁香一区二区三区| 色先锋aa成人| 9191精品国产综合久久久久久 | 51午夜精品国产| 欧美成人猛片aaaaaaa| 国产午夜亚洲精品不卡 | 久久精品亚洲乱码伦伦中文| 国产精品久久二区二区| 亚洲一区二区三区视频在线| 精品一区二区三区在线观看 | 亚洲男人的天堂网| 三级一区在线视频先锋| 国内成人免费视频| 色999日韩国产欧美一区二区| 日韩一区二区三区观看| 欧美激情中文字幕一区二区| 亚洲一卡二卡三卡四卡| 精品亚洲国产成人av制服丝袜| 不卡的av在线| 在线播放日韩导航| 亚洲国产精华液网站w| 亚洲成人av资源| 成人免费福利片| 欧美一级在线免费| 亚洲免费av在线| 国产精品影视网| 欧美高清激情brazzers| 国产精品麻豆视频| 免费美女久久99| 91久久奴性调教| 欧美韩日一区二区三区| 青草国产精品久久久久久| 在线观看不卡视频| 中文字幕精品—区二区四季| 青青草97国产精品免费观看无弹窗版| 成年人国产精品| 精品国产一区二区三区不卡| 亚洲一区国产视频| 不卡在线视频中文字幕| 91精品国产综合久久久久| 亚洲色图19p| 成人一级片网址| 日韩精品一区二区三区视频播放| 成人一区二区三区中文字幕| 欧美一区二区三区喷汁尤物| 一区二区三区毛片| 97久久超碰国产精品| 久久综合九色综合97_久久久| 日韩精品乱码免费| 欧洲精品中文字幕| 亚洲欧美电影一区二区| 波多野结衣一区二区三区| 久久亚洲免费视频| 激情六月婷婷久久| 精品国产乱码久久久久久闺蜜| 五月综合激情网| 欧美日韩国产一级| 午夜精品视频在线观看| 欧美日韩精品一区二区在线播放| 亚洲精品久久7777| 日本韩国精品在线|