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

📄 response.java

📁 ... 用JAVA实现SMTP 服务器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        	      }
        	      finally{
        	      	if(fos!=null)fos.close();//关闭文件输出流
        	      }
        }
        catch(Exception e)
           {
         	System.out.println(e.toString() );
           }
        
        
        
        
         if(!zz)//邮件转发
         {
         	
         	Socket socket11=null;
         	InputStream input11=null;
   	   		OutputStream output11=null;
   	   		FileInputStream fin=null;//文件输入流
   	   	    byte byte22[]=new byte[1024];
   	   	    
   	   		int u;
   	   	    int j;
   	   	    File file1;
   	   		StringBuffer requestBuffer=new StringBuffer(1024);
   	   		StringBuffer requestBuffer1=new StringBuffer(1024);
   	   		StringBuffer requestBuffer2=new StringBuffer(1024);
   	   		StringBuffer requestBuffer3=new StringBuffer(1024);
   	   		StringBuffer requestBuffer4=new StringBuffer(1024);
   	   		StringBuffer requestBuffer5=new StringBuffer(1024);
   	   		     
         	try
         	   {
         	   	
         	   	try
         	   	   {
         	   	 	 socket11=new Socket("192.168.4.124",50);//连接下一个服务器
         	   	 	 input11=socket11.getInputStream();
         	   	 	 output11=socket11.getOutputStream();
         	   	 	
         	     	 try //读取返回信息
                     {
                    
                      u=input11.read(byte22);
                     } 
     
                    catch(IOException www)
          
                     {
	                  www.printStackTrace();
              	      u=-1;
                     }
                    for( j=0;j<u;j++)
                     {
   	                  requestBuffer.append((char) byte22[j]);
                     }   
                      System.out.println(requestBuffer.toString());
         	   	 	
         	   	 
         	   	 
         	   	 	  String string11="helo MYSMTP";//发送helo命令
         	   	 	  System.out.println(string11);
         	   	 	  output11.write(string11.getBytes(),0,string11.length()); 
         	   	 	try //读取返回信息
                     {
                     	
                      u=input11.read(byte22);
                     } 
     
                     catch(IOException www)
          
                      {
	                   www.printStackTrace();
                  	   u=-1;
                      }
                     for(j=0;j<u;j++)
                     {
   	                  requestBuffer1.append((char) byte22[j]);
                     }   
                     System.out.println(requestBuffer1.toString());
         	   	    
         	   	    
         	   	    
         	   	    
         	   	    
         	   	    string11="mail from:<"+request.getRevrsePath()+">";//发送mail命令
         	   	    System.out.println(string11);
         	   	 	output11.write(string11.getBytes(),0,string11.length());
         	   	 	try //读取返回信息
                    {
                     u=input11.read(byte22);
                     } 
     
                    catch(IOException www)
          
                     {
	                 www.printStackTrace();
              	     u=-1;
                      }
                   for( j=0;j<u;j++)
                    {
   	                 requestBuffer2.append((char) byte22[j]);
                    }   
                    System.out.println(requestBuffer2.toString());
         	   	 	
         	   	 	
         	   	 	
         	   	 	
         	   	 	
         	   	 	string11="rcpt to:<"+request.getForwordPath()+">";//发送rcpt命令
         	   	 	System.out.println(string11);
         	   	 	output11.write(string11.getBytes(),0,string11.length());
         	   	 	try //读取返回信息
                     {
                     u=input11.read(byte22);
                      } 
     
                      catch(IOException www)
          
                       {
	                 www.printStackTrace();
              	      u=-1;
                        }
                        
                    for( j=0;j<u;j++)
                      {
   	                 requestBuffer3.append((char) byte22[j]);
                       }   
                       String re=requestBuffer3.toString().trim();
                      
         	   	 	System.out.println(re);
         	   	 	
         	   	  if(re.equals("250 OK"))//如果该用户在列表中则转发邮件
         	   	    {	
         	   	     string11="data";//发送data命令
         	   	 	 System.out.println(string11);
         	   	 	 output11.write(string11.getBytes(),0,string11.length());
         	   	 	
         	   	 	
         	   	 	
         	   	 	
         	   	 	File qq1=new File(SmtpServer.rootDir,request.getUser());
        	        if(!qq1.exists())qq1.mkdir();
        	        
        	        if(x>0)
        	          {
        	        	
        	       
         	   	 	    file1=new File(qq1,request.getRevrsePath()+
        	            String.valueOf(x)+".txt");
        	            
        	          }
        	          else 
        	          {  
        	            file1=new File(qq1,request.getRevrsePath()+String.valueOf(0)+".txt");
        	          }
        	             
         	   	 	 fin=new FileInputStream(file1);
         	   	 	
         	   	 	 byte[] buffer11=new byte[1024];
         	   	 	 
         	   	 	 int m=fin.read(buffer11,0,1024);//将邮件发送过去
         	   	 	 while(m!=-1)
         	   	 	    {
         	   	 	    	output11.write(buffer11,0,m);
         	   	 	      
         	   	 	    	m=fin.read(buffer11,0,1024);
         	   	 	    }
         	   	 	     
         	   	    string11="\r\n.\r\n";
         	   	   output11.write(string11.getBytes(),0,string11.length());
         	   	 	
         	   	 	try //读取返回信息
                    {
                      u=input11.read(byte22);
                    } 
     
                    catch(IOException www)
          
                     {
	                  www.printStackTrace();
              	      u=-1;
                     }
                    for( j=0;j<u;j++)
                    {
   	                 requestBuffer4.append((char) byte22[j]);
                    }   
                   System.out.println(requestBuffer4.toString());
                   
                  
                 
         	   	  }
         	   	 else
         	   	    {
         	   	      File qq1=new File(SmtpServer.rootDir,request.getUser());
        	          if(!qq1.exists())qq1.mkdir();
        	        
        	          if(x>0)
        	           {
        	        	
        	       
         	   	 	    file1=new File(qq1,request.getRevrsePath()+
        	            String.valueOf(x)+".txt");
        	            
        	           }
        	          else 
        	           {  
        	            file1=new File(qq1,request.getRevrsePath()+String.valueOf(0)+".txt");
        	           }
         	   	     	
         	   	       file1.delete();
         	   	       qq1.delete();
         	   	      
         	   	    }
         	   	 	
         	   	 	
         	   	 	string11="quit";//发送quit命令,断开连接
         	   	 	output11.write(string11.getBytes(),0,string11.length());
         	   	    
         	   	 	  	
         	   	 }
         	   	 catch(Exception e)
         	   	   {  
         	   	     System.out.println("connect error");
         	   	   }
         	   	   
         	   	   
         	   }
         	   catch(Exception e)
         	   	   {
         	   	   }
         }
         
         
      
  }
   
   	
   public boolean isEnd(byte[] bytes,int size)//判断邮件是否结束
   
   { 
	   	if(size==3)
	   	{
	   		if(bytes[0]=='.'&&bytes[1]==13&&bytes[0]==10)
	   		{
	   			System.out.println("end");
	   			return true;
	   		}
	   	
	   	}
	   	if(size>=5)
	   	{
	   		if(bytes[size-5]==13&&bytes[size-4]==10&&bytes[size-3]=='.'&&bytes[size-2]==13&&bytes[size-1]==10)
	   		{
	   			System.out.println("end");
	   			return true;
	   		}
	   	
	   	}
	   
	   	
	   	
	   	
   	  return false;
   }
}
   
		
		

	
        

⌨️ 快捷键说明

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