public boolean receiveMail(String userName){
		//ѭûжϵɹʱز
		while(true){
			once = OnceClass.getOnce();
			localServer = once.getLocalServiceInfo();
			//ȡʼĴŵַ
			File file = new File(localServer.getMailPath()+File.separator+userName+File.separator+"ReceiveMail");
			//ļвڣ򴴽
			Util.mkdirs(file);
			File files[] = file.listFiles();
			int count = files.length;
			try {
				//뷢ָ
				String order = br.readLine();
				if(order == null){
					return false;
				}
				System.err.println(order);
				//order,           δո
				order = order.toLowerCase().trim();
				if(order.equals("noop")){
					doOk();
				}else if(order.equals("quit")){
					//˳̷߳
					doOk();
					return true;
				}else if(order.equals("stat")){
					//״̬
					Util.println(ps, "+OK "+files.length+" "+Util.getFileSize(file));
					Util.println(ps, ".");
				}else if(order.equals("list")){
					//صǰûʼбϢԵ
					doOk();
					for(int i=0; i<count; i++){
						int size = Util.getFileSize(files[i]);
						Util.println(ps, (i+1)+" "+size);
					}
					ps.println(".");
				}else if(order.contains("top ")){ //topһʼظʼͷ
					String[] Int = order.split(" ");
					int num = Integer.parseInt(Int[Int.length-1]);
					if(num > count){
						Util.println(ps, "-ERR - not that many messages only "+count);
						continue;
					}else{
						//+OK
						doOk();
						//صһʼʼͷ
						BufferedReader br = Util.getBufferedReader(files[num]);
						String subMail = null;
						while((subMail=br.readLine())!=null && !subMail.equals("Subject:")){
							Util.println(ps, subMail);
						}
						Util.println(ps, subMail);
						br.close();
						ps.println(".");
					}
				}else if(order.contains("retr ")){
					doOk();
					int num = Integer.parseInt(order.replace("retr ", ""));
					if(num > count){
						Util.println(ps, "-ERR - not that many messages only "+count);
						continue;
					}else{
						//+OK
						doOk();
						Util.saveLog(userName+Util.getClientInfo(client)+"ȡһʼ");
						//صһʼʼͷ
						BufferedReader br = Util.getBufferedReader(files[num-1]);
						String subMail = null;
						while((subMail=br.readLine())!=null){
							Util.println(ps, subMail);
						}
						br.close();
						ps.println(".");
					}
				}else if(order.contains("del ")){
					int num = Integer.parseInt(order.replace("del ", ""));
					if(num > count){
						Util.println(ps, "-ERR not that many messages only "+count);
						continue;
					}else{
						files[num-1].delete();
					}
					doOk();
				}else if(order.equals("uidl")){
					//ûļuidlʼΨһʶ
					doOk();
					//ʼ
					for(int i=0; i<files.length; i++){
						Util.println(ps, (i+1)+" "+files[i].getName());
//						System.out.println((i+1)+files[i].getName());
					}
					ps.println(".");
				}else{
					//ָ
					Util.println(ps, "-ERR - unimplemented");
					continue;
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
//				e.printStackTrace();
				return false;
			}
		}
	}