How to check if smtp is working from commandline (Linux)

432,181

Solution 1

Syntax for establishing a raw network connection using telnet is this:

telnet {domain_name} {port_number}

So telnet to your smtp server like

telnet smtp.mydomain.com 25

And copy and paste the below

helo client.mydomain.com
mail from:<[email protected]>
rcpt to:<[email protected]>
data
From: [email protected]
Subject: test mail from command line

this is test number 1
sent from linux box
.
quit

Note : Do not forgot the "." at the end which represents the end of the message. The "quit" line exits ends the session.

Solution 2

The only thing about using telnet to test postfix, or other SMTP, is that you have to know the commands and syntax. Instead, just use swaks :)

thufir@dur:~$ 
thufir@dur:~$ mail -f Maildir
"/home/thufir/Maildir": 4 messages
>    1 [email protected]                   15/553   test Mon, 30 Dec 2013 10:15:12 -0800
     2 [email protected]                   15/581   test Mon, 30 Dec 2013 10:15:55 -0800
     3 [email protected]                   15/581   test Mon, 30 Dec 2013 10:29:57 -0800
     4 [email protected]                   15/581   test Mon, 30 Dec 2013 11:54:16 -0800
? q
Held 4 messages in /home/thufir/Maildir
thufir@dur:~$ 
thufir@dur:~$ swaks --to [email protected]
=== Trying dur.bounceme.net:25...
=== Connected to dur.bounceme.net.
<-  220 dur.bounceme.net ESMTP Postfix (Ubuntu)
 -> EHLO dur.bounceme.net
<-  250-dur.bounceme.net
<-  250-PIPELINING
<-  250-SIZE 10240000
<-  250-VRFY
<-  250-ETRN
<-  250-STARTTLS
<-  250-ENHANCEDSTATUSCODES
<-  250-8BITMIME
<-  250 DSN
 -> MAIL FROM:<[email protected]>
<-  250 2.1.0 Ok
 -> RCPT TO:<[email protected]>
<-  250 2.1.5 Ok
 -> DATA
<-  354 End data with <CR><LF>.<CR><LF>
 -> Date: Mon, 30 Dec 2013 14:33:17 -0800
 -> To: [email protected]
 -> From: [email protected]
 -> Subject: test Mon, 30 Dec 2013 14:33:17 -0800
 -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 -> 
 -> This is a test mailing
 -> 
 -> .
<-  250 2.0.0 Ok: queued as 52D162C3EFF
 -> QUIT
<-  221 2.0.0 Bye
=== Connection closed with remote host.
thufir@dur:~$ 
thufir@dur:~$ mail -f Maildir
"/home/thufir/Maildir": 5 messages 1 new
     1 [email protected]                   15/553   test Mon, 30 Dec 2013 10:15:12 -0800
     2 [email protected]                   15/581   test Mon, 30 Dec 2013 10:15:55 -0800
     3 [email protected]                   15/581   test Mon, 30 Dec 2013 10:29:57 -0800
     4 [email protected]                   15/581   test Mon, 30 Dec 2013 11:54:16 -0800
>N   5 [email protected]                   15/581   test Mon, 30 Dec 2013 14:33:17 -0800
? 5
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from dur.bounceme.net (localhost [127.0.0.1])
    by dur.bounceme.net (Postfix) with ESMTP id 52D162C3EFF
    for <[email protected]>; Mon, 30 Dec 2013 14:33:17 -0800 (PST)
Date: Mon, 30 Dec 2013 14:33:17 -0800
To: [email protected]
From: [email protected]
Subject: test Mon, 30 Dec 2013 14:33:17 -0800
X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
Message-Id: <[email protected]>

This is a test mailing

New mail has arrived.
? q
Held 5 messages in /home/thufir/Maildir
thufir@dur:~$ 

It's just one easy command.

Solution 3

[root@piwik-dev tmp]# mail -v root@localhost
Subject: Test
Hello world
Cc:  <Ctrl+D>

root@localhost... Connecting to [127.0.0.1] via relay...
220 piwik-dev.example.com ESMTP Sendmail 8.13.8/8.13.8; Thu, 23 Aug 2012 10:49:40 -0400
>>> EHLO piwik-dev.example.com
250-piwik-dev.example.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From:<[email protected]> SIZE=46
250 2.1.0 <[email protected]>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
250 2.1.5 <[email protected]>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 q7NEneju002633 Message accepted for delivery
root@localhost... Sent (q7NEneju002633 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 piwik-dev.example.com closing connection

Solution 4

Not sure if this help or not but this is a command line tool which let you simply send test mails from a SMTP server priodically. http://code.google.com/p/woodpecker-tester/

Share:
432,181
balanv
Author by

balanv

Experience : 7+ years of experience in core programming, project management, client communication and a serious COD Player..!! Skills : Magento, Ruby on Rails, NodeJs, Python, Java, Hadoop, Wordpress, Css, Golang etc.,

Updated on August 16, 2020

Comments

  • balanv
    balanv almost 4 years

    I have a SMTP-server, for the purpose of this question lets call it: smtp.mydomain.com.

    How do i check if the SMTP-server is in working? Can I send emails manually from Linux commandline?

  • tripleee
    tripleee almost 12 years
    You should wait for the servers's response to each command, and abort if you get and error (4xx or 5xx result code).
  • martineg
    martineg almost 12 years
    You need a blank line between headers and message, apart fram that it's a working example.
  • balanv
    balanv almost 12 years
    @tripleee : actually when i pasted this in telnet, i can get email from smtp server. Note : Afte the "." at end, i left a line break.
  • tripleee
    tripleee almost 12 years
    Good for you. In the general case, you are behaving like a spammer, which will make some servers hang up on you.
  • jgrocha
    jgrocha about 10 years
    Instead of hello velanapps.com you should write helo velanapps.com and if you want to know which smtp extensions are available, you should write ehlo velanapps.com, as in SMTP Example
  • Peter Loron
    Peter Loron over 9 years
    I didn't know about swaks. Thanks!
  • rhand
    rhand about 9 years
    you can exit by typing quit
  • Jeremy
    Jeremy about 7 years
    This answer was useful, however I omitted the first line in my tests. I stil got emails through from the smtp server. It would be helpful if you could include a little bit about what the velanapps.com domain is doing here. I am always wary when I see a domain used for something like this with no explanation as to what its doing with our data. Thanks.
  • balanv
    balanv about 7 years
    @Jeremy Its just a sample data, i have removed it and added placeholder...
  • Bruno Bronosky
    Bruno Bronosky almost 7 years
    "I found this on the web, and added this to Stack Overflow as many end up here." Bless your heart.
  • vladkras
    vladkras over 5 years
    this works only if I switch to line mode with ^] and l consecutively
  • Erdal G.
    Erdal G. over 3 years
    Just tried swaks is great, wow! And available as a standart package in Debian