SMTP Commands (sending mail using a terminal window)

Telnet - SMTP Commands (sending mail using telnet)
(source: http://www.yuki-onna.co.uk/email/smtp.html)

In order to access your mailbox you will need 3 things:

  • An active internet connection (an embarrasing stage to miss sometimes!)
  • The address of a mail server capable of relaying for you - usually provided by your dialup provider (e.g. mail.domain.ext)
  • A valid email address (e.g. txe.niamod|liam#txe.niamod|liam)

The first thing to do is to open a connection from your computer to your mail server.
telnet mail.domain.ext 25
You should receive a reply like:
Trying ???.???.???.???…
Connected to mail.domain.ext.
Escape character is '^]'.
220 mail.domain.ext ESMTP Sendmail ?version-number?; ?date+time+gmtoffset?

You will then need to delcare where you are sending the email from:
HELO local.domain.name - dont worry too much about your local domain name although you really should use your exact fully qualified domain name as seen by the outside world the mail server has no choice but to take your word for it as of RFC822-RFC1123.
This should give you:
250 mail.domain.ext Hello local.domain.name [loc.al.i.p], pleased to meet you

Now give your email address:
MAIL FROM: txe.niamod|liam#txe.niamod|liam
Should yeild:
250 2.1.0 txe.niamod|liam#txe.niamod|liam… Sender ok
If it doesn't please see possible problems.

Now give the recipients address:
RCPT TO: txe.niamodrehto|liam#txe.niamodrehto|liam
Should yeild:
250 2.1.0 txe.niamodrehto|liam#txe.niamodrehto|liam… Recipient ok
If it doesn't please see possible problems.

To start composing the message issue the command DATA

If you want a subject for your email type Subject:-type subject here- then press enter twice (these are needed to conform to RFC 882)

You may now proceed to type the body of your message (e.g. hello txe.niamodrehto|liam#txe.niamodrehto|liam from txe.niamod|liam#txe.niamod|liam)

To tell the mail server that you have completed the message enter a single "." on a line on it's own.
The mail server should reply with: 250 2.0.0 ???????? Message accepted for delivery

You can close the connection by issuing the QUIT command.
The mailserver should reply with something like:221 2.0.0 mail.domain.ext closing connection
Connection closed by foreign host.

Here are a list of problems I've encountered and their fixes
501 ereh.ecalphcuson|resuon#ereh.ecalphcuson|resuon… Sender domain must exist
The domain that you are sending from must exist

503 Need MAIL before RCPT
A recipient has been specified before a sender.

550 txe.niamod|liam#txe.niamod|liam… Relaying Denied
The mail server has refused to relay mail for you, this may be for any number of reasons but typical resons include:
Not using this provider for an internet connection and/or
Not using an email address provided by the owner of the server.

Some things to watch out for:
1. If you type too quickly, sometimes it won't recognise your text (weird!)
2. The backspace key sometimes does not work with some telnet clients (even though it may seem as though it does)

I'll be putting more as and when I get them and figure out how to fix each problem.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.