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

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

?? smtp.java

?? Java2網絡協議技術內幕(附源碼)
?? 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一区二区三区免费野_久草精品视频
国产精品99久久久久久有的能看| 91在线免费看| 亚洲男同性视频| 精品国产伦一区二区三区观看方式| eeuss鲁片一区二区三区| 日本欧美大码aⅴ在线播放| 中文字幕日本不卡| 久久网这里都是精品| 欧美精品在线观看一区二区| 99国产一区二区三精品乱码| 国产一区二区三区在线观看免费| 亚洲国产三级在线| 国产精品久久久久久亚洲伦| 欧美大片一区二区三区| 777久久久精品| 欧美中文一区二区三区| 99久久精品国产观看| 国产成人综合网站| 精品在线观看视频| 麻豆一区二区99久久久久| 亚洲制服丝袜在线| 亚洲女人****多毛耸耸8| 国产日韩影视精品| 精品国产免费一区二区三区香蕉| 欧美精品一卡二卡| 在线不卡一区二区| 欧美日韩国产一二三| 欧美视频一区二区三区四区| 一本一道久久a久久精品 | 奇米在线7777在线精品| 亚洲国产综合视频在线观看| 亚洲视频一二三区| 亚洲少妇30p| 亚洲精品成a人| 亚洲欧美日韩一区二区| 中文字幕一区二区不卡 | 欧美mv和日韩mv的网站| 欧美一区二区啪啪| 日韩三级伦理片妻子的秘密按摩| 91精品国产福利| 91精品国产一区二区| 欧美一区二区三区思思人| 日韩三级视频在线观看| 精品国产乱码久久久久久久| 精品sm在线观看| 国产欧美视频在线观看| 国产精品人人做人人爽人人添 | 中文字幕av一区二区三区免费看| 国产欧美va欧美不卡在线 | 青青草国产精品亚洲专区无| 视频一区在线视频| 另类中文字幕网| 成人一级片在线观看| 91蜜桃网址入口| 欧美精品在线观看一区二区| 欧美成人激情免费网| 国产日韩三级在线| 亚洲精品视频在线观看网站| 偷拍自拍另类欧美| 国产乱码精品一区二区三区av| 成人综合在线观看| 欧美日韩综合在线免费观看| 欧美成人精品二区三区99精品| 国产欧美精品国产国产专区| 亚洲在线视频一区| 狠狠色2019综合网| 色综合天天视频在线观看 | 久久精品夜色噜噜亚洲aⅴ| 国产精品不卡一区二区三区| 亚洲综合色在线| 国内精品国产三级国产a久久| 不卡视频在线观看| 欧美日韩国产大片| 久久精品亚洲精品国产欧美kt∨ | 久久精品一区二区三区不卡牛牛| 中文字幕一区二区三区色视频| 亚洲一区二区在线视频| 久久99精品国产| 91精品福利在线| 久久免费国产精品 | 国产一区999| 色婷婷久久一区二区三区麻豆| 日韩一区二区免费视频| 国产精品久久久久影院色老大 | 久久精品av麻豆的观看方式| 成+人+亚洲+综合天堂| 69久久夜色精品国产69蝌蚪网| 国产亚洲一区字幕| 日本色综合中文字幕| 色综合中文字幕国产 | 欧美视频你懂的| 国产日产欧美精品一区二区三区| 亚洲午夜久久久久久久久电影院 | 国产亚洲一本大道中文在线| 一区二区三区免费| 国产高清成人在线| 91精品欧美一区二区三区综合在 | 偷偷要91色婷婷| 91在线免费看| 国产日韩亚洲欧美综合| 日韩电影免费在线看| 色综合久久综合中文综合网| 国产欧美一区二区三区在线看蜜臀 | 91香蕉视频污| 久久九九全国免费| 激情都市一区二区| 91精品视频网| 天天操天天综合网| 色天天综合久久久久综合片| 国产精品美女久久久久久久网站| 精久久久久久久久久久| 日韩一区二区三区视频在线观看 | 日韩精品电影一区亚洲| 色综合色综合色综合| 中文av字幕一区| 国产在线不卡一区| 久久综合久久鬼色| 九九精品一区二区| 欧美一级艳片视频免费观看| 亚洲成a人在线观看| 在线视频国内自拍亚洲视频| 综合久久一区二区三区| 成人综合在线网站| 中文乱码免费一区二区| 成人精品在线视频观看| 国产欧美一二三区| 成人免费视频国产在线观看| 国产三级久久久| 丁香六月久久综合狠狠色| 国产日韩欧美综合一区| 豆国产96在线|亚洲| 中文字幕免费不卡| www.日韩av| 亚洲精品ww久久久久久p站| 91黄色免费版| 亚洲午夜国产一区99re久久| 欧美中文一区二区三区| 日韩在线一区二区三区| 欧美videossexotv100| 麻豆成人免费电影| 久久精品视频在线看| 成人精品视频一区二区三区尤物| 中文字幕不卡三区| 色域天天综合网| 偷拍一区二区三区| 日韩免费电影一区| 国产成人高清视频| 亚洲精品视频一区二区| 欧美日韩午夜在线视频| 全国精品久久少妇| 精品国产成人系列| 成人午夜视频免费看| 一区二区不卡在线播放| 91精品国产综合久久婷婷香蕉| 欧美96一区二区免费视频| 国产午夜精品理论片a级大结局| 国产成人免费在线观看| 亚洲综合激情网| 日韩欧美一级二级三级 | 欧美剧情片在线观看| 久久99精品久久久久久动态图| 欧美国产欧美综合| 91久久免费观看| 蜜臀久久99精品久久久久宅男| 久久精品视频在线免费观看| 色综合夜色一区| 麻豆国产精品官网| 中文字幕一区三区| 欧美丰满少妇xxxbbb| 国产69精品一区二区亚洲孕妇| 亚洲激情欧美激情| 精品久久久久久综合日本欧美| 国产成人免费视| 首页国产欧美久久| 国产精品色眯眯| 欧美一区二区不卡视频| 成人免费视频国产在线观看| 日韩精彩视频在线观看| 国产精品久99| 欧美一区二区精品在线| 91蜜桃视频在线| 久久99精品久久久久婷婷| 亚洲精品视频自拍| 中文子幕无线码一区tr| 4438x亚洲最大成人网| 不卡免费追剧大全电视剧网站| 日本v片在线高清不卡在线观看| 国产精品国产三级国产a| 欧美电影免费观看高清完整版在| 色综合一区二区| 粉嫩av一区二区三区| 美女网站一区二区| 亚洲精品菠萝久久久久久久| 国产日韩视频一区二区三区| 91精品国产免费久久综合| 欧美在线视频你懂得| 成人黄色在线网站| 黄网站免费久久| 日产国产欧美视频一区精品| 亚洲综合视频网|