@Override
	public void run(){
		while(true) {
			try {
				for (RemoteAccount ra : RemoteAccount.values()) {
					this.ra = ra;
					socket = new Socket(ra.server, ra.port);
					reader = new BufferedReader(new InputStreamReader(
							socket.getInputStream()));
					writer = new BufferedWriter(new OutputStreamWriter(
							socket.getOutputStream()));
					mbox = Mailbox.get(Account.getByCredentials("manfred@localhost",
							"Wurst"));
					try {
						if (!mbox.tryLock(2, TimeUnit.SECONDS)) {
							getReply("QUIT");
							break;
						}
					} catch (InterruptedException e1) {
						ProxyServer.errorLogger.log(Level.SEVERE,
								e1.getMessage(), e1);

					} catch (IOException e) {
						ProxyServer.errorLogger.log(Level.SEVERE,
								e.getMessage(), e);
					}
					fetch();
					mbox.unlock();
				}
			
			} catch (IOException e) {
				ProxyServer.errorLogger.log(Level.SEVERE, e.getMessage(), e);
			}
			try {
				Thread.currentThread();
				Thread.sleep(10000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}