Debian Linux: Send a test mail using Telnet (Postfix)

Send a test mail using Telnet

Emulating an SMTP session with Telnet

Let us try to send an email to the user now. As the “” domain does not really existing your DNS settings will likely not point to the right server. So we are simulating an SMTP session with the telnet command. Install the telnet package if you haven’t already:

$> aptitude install telnet

Then establish a TCP connection to the SMTP port:

$> telnet localhost smtp

The server should reply:

Connected to localhost.
Escape character is '^]'.
220 mailtest ESMTP Postfix (Debian/GNU)

Great. Postfix is listening and wants us to speak SMTP. First we need to be friendly:


Postfix appreciates our friendliness and tells us which features it provides:

250-SIZE 10240000
250 DSN

Hey, Postfix, we have a mail from

mail from:<>

Looks like Postfix is happy with that because return codes that start with a ‘2’ are good news:

250 2.1.0 Ok

Tell Postfix who the recipient of the mail is:

rcpt to:<>

Postfix accepts that:

250 2.1.5 Ok

Then we are ready to send the actual mail:


Postfix agrees and tells us we can send the actual mail now and end our input with a dot on an empty line:

354 End data with <CR><LF>.<CR><LF>

Okay, type in the mail:

Hi John,

just wanted to drop you a note.

Postfix tells us it has received the mail and queued under a queue ID:

250 2.0.0 Ok: queued as A9D64379C4

Thanks, Postfix, we are done:


Checking the logs

Take a look at the /var/log/mail.log file now. You should see something similar to:

postfix/smtpd[...]: connect from localhost[]
postfix/smtpd[...]: 5FF712A6: client=localhost[]
postfix/cleanup[...]: 5FF712A6: message-id=<...>
postfix/qmgr[...]: 5FF712A6: from=<>, size=364, nrcpt=1 (queue active)
postfix/pipe[...]: 5FF712A6: to=<>, relay=dovecot, ..., status=sent (delivered via dovecot service)
postfix/qmgr[...]: 5FF712A6: removed
postfix/smtpd[...]: disconnect from localhost[]

The delivery has worked. Postfix has correctly determined that the destination domain is a virtual domain and forwarded the email to the ‘dovecot’ service.

Checking the user’s mailbox

The email should now be somewhere under /var/vmail/ Let us take a look:

$> cd /var/vmail/
$> find

There sits the email. Try to read the mail with the “mutt” program:

$> mutt -f .

The new email is shown:

q:Quit  d:Del  u:Undel  s:Save  m:Mail  r:Reply  g:Group  ?:Help
   1 N   May 18 steve@example.c (0.1K)

Press ENTER to read the email:

To: undisclosed-recipients: ;

Hi John,

just wanted to drop you a note.

So the email arrived at John’s account. Perfect. Choose ‘q’ twice to exit mutt again.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s