I have a program that spawns a thread to send an email message to a server. I am using the SMTP protocol level stuff such as HELO, MAIL FROM, DATA..etc( I know not JavaMail ). After I send a HELO to the server, I get an InteruptedIOException on the read. The thread that makes the call to my SMTP class does not die after the exception is thrown because after the exception is caught, the thread name is the same as before the SMTP method is called. So I am really not sure why this is happening. I have tried to telnet into the server on port 25 and issue the same commands as my program would and I get no errors. Any ideas ?