This is probably a post not just for the noobs, but for some of the non-technical pros as well. I found this post on about.com and it explains how a mail server works. It is pretty insightful and will let you know the basics of how it works. Great information for any mailer to have. http://email.about.com/cs/standards/a/smtp.htm ----------------------------- When you send email SMTP comes into play. SMTP is short for Simple Mail Transfer Protocol as defined in RFC 2821: Simple Mail Transfer Protocol. Your mail client talks to the SMTP server using this clean and simple procedure to get email from one place to another. The Flirt Your email program becomes an SMTP client, connects to port 25 of your mail server (usually the SMTP port) and â€” says EHLO. Computers, in the end, are only human and what counts is that it wants to be polite. Actually, it does not attempt to be polite but to use later additions to SMTP that have brought about two flavors of the later HELO command (SMTP command generally consist of four characters). Two Flavors of HELO EHLO, being the more recent one makes the server advertise all the additional features (such as delivery status notification or the ability to transport messages that contain other than the safe ASCII characters) it supports. Not every server will allow this greeting, but it is required to accept a plain HELO which naturally assumes that no additional features are present. Both hello commands do require the client to specify its domain after the **LO, however. In practice, this looks something like: 220 mail.domain.net ESMTP Server HELO 501 HELO requires domain address HELO localhost 250 mail.domain.net Hello localhost [127.0.0.1], pleased to meet you (My input is in italics, the servers output is black; lines beginning with a 5 indicate an error.) The Sender The remainder of the protocol really deserves the attribute simple. If you want to send an email, you start with the keywords MAIL FROM:. Following this comes the email address of the sender, as suggested by the from. Don't forget to put brackets around the address, though (like <firstname.lastname@example.org>). Continuing our example, we have: MAIL FROM: <email@example.com> 250 firstname.lastname@example.org... Sender ok The recipient After the server has accepted the sender's address, the client can give the address of the recipient. The command for this action, RCPT TO: again is rather suggestive. I want to send mail to myself: RCPT TO: email@example.com 250 firstname.lastname@example.org... Recipient ok (will queue) That the server will queue means just that: it will save the mail locally and send it together with all the other queued mail in intervals (for example, every 30 minutes). This behavior depends on the configuration and the server may also deliver the mail instantly. We're almost done. What's still missing, though, is the important part: the actual message. The Message Now that the "envelope" is finished, the data of the email message just as it is can follow. This "data" consists of the email's body as well as the header fields. The command to initiate the state that makes the server accept the message is DATA. Following this are all the header fields of the email message and then the body, both making up for just one big block of text (or data). To tell the server that the input is finished a dot on a line by itself is used (\r\n.\r\n). So I send my message: DATA 354 Enter mail, end with "." on a line by itself Message-ID: <kllsd0817184815.33912@larose> Date: Sun, 17 Aug 1997 18:48:15 +0200 From: Heinz Tschabitscher <email@example.com> To: Heinz Tschabitscher <firstname.lastname@example.org> Subject: For the Summarize-Proust Contest Off to Swan's World! . 250 SAA19153 Message accepted for delivery Yes, this means that you can state a name completely different from the one the email goes to in the To: field. For example, you can use "Recipient list suppressed" <email@example.com>. The End You can now send as many emails as you wish repeating the steps from MAIL FROM: to .. If you're done with that, you may quit the server with the QUIT command and that's just what we do: QUIT 221 Goodbye How Can I do This? The non-trivial solution is to telnet to your outgoing mail server (you can find its address in your email client's account settings) on port 25. Open a command prompt. Type "telnet <mail server> 25". Talk to the server using SMTP. The easier way is to use this Java applet, which tries to imitate the SMTP protocol and guides you through the dialog.