<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Balasubramaniam Natarajan schrieb:
<blockquote
 cite="mid:8ef2324f0912180044x6087228dg36778eefbdbe0381@mail.gmail.com"
 type="cite">
  <div>Hi </div>
  <div> </div>
  <div>I have two Windows 2003 server which works as SMTP relay server.</div>
  <div> </div>
  <div>What are the key parameter of the server should I monitor from
Xymon.</div>
  <div> </div>
  <div>I want to check certain parameters like</div>
  <ol>
    <li>If the Mail server is accepting mails.</li>
    <li>If the Mail Server is able to relay it to the next server.</li>
    <li>Is my Mail relaying server free from open relaying and stuffs, </li>
  </ol>
  <div>How could I achieve all these using Xymon?  I have BBNT "An
NT/W2K **CLIENT** for Big Brother System & Network Monitor Version
1.08d" on all the Windows 2003 servers.</div>
</blockquote>
Hi,<br>
<br>
for 1 and 3 you can use a server-side script using expect:<br>
<tt><br>
file expect-smtp<br>
###################<br>
#!/usr/bin/expect<br>
<br>
set mailserver [lrange $argv 0 0]<br>
set from [lrange $argv 1 1]<br>
set to [lrange $argv 2 2]<br>
set timeout 90<br>
<br>
spawn telnet $mailserver 25<br>
expect "failed" {<br>
                send_user "$mailserver: connect failed\n"<br>
                exit<br>
        } "2?? *" {<br>
        } "4?? *"   {<br>
                exit<br>
        } "refused" {<br>
                send_user "$mailserver: connect refused\n"<br>
                exit<br>
        } "closed" {<br>
                send_user "$mailserver: connect closed\n"<br>
                exit<br>
        } timeout {<br>
                send_user "$mailserver: connect to port 25 timeout\n"<br>
                exit<br>
        }<br>
<br>
send "HELO server.isp.de\r"<br>
expect "2?? *" {<br>
} "5?? *" {<br>
        send_user "=== $mailserver: HELO 5??\n"<br>
        exit<br>
} "4?? *" {<br>
        send_user "=== $mailserver: HELO 4??\n"<br>
        exit<br>
}<br>
<br>
send "MAIL FROM: <$from>\r"<br>
expect "2?? *"  {<br>
} "5?? *" {<br>
        exit<br>
} "4?? *" {<br>
        exit<br>
}<br>
<br>
send "RCPT TO: <$to>\r"<br>
expect "2?? *" {<br>
        set smtpcode "2xx"<br>
        send_user "smtpcode = $smtpcode\n"<br>
} "5?? *" {<br>
        set smtpcode "5xx"<br>
        send_user "smtpcode = $smtpcode\n"<br>
        exit<br>
} "4?? *" {<br>
        set smtpcode "4xx"<br>
        send_user "smtpcode = $smtpcode\n"<br>
        exit<br>
}<br>
<br>
send "RSET\r"<br>
send "QUIT\r"<br>
exit<br>
#########################<br>
<br>
<br>
</tt>I call it from server-side shell-script mailserver-verify.sh<br>
for a list of mailservers. <br>
(in my case: check rejecting invalid recipients during the SMTP
protocol)...<tt><br>
<br>
...<br>
TEXT=$(${BBHOME}/ext/expect-smtp ${IP} <a class="moz-txt-link-abbreviated" href="mailto:verify@isp.de">verify@isp.de</a>
non-existent-address@${DOMAIN})<br>
...<br>
</tt><br>
<pre>220 server03.domain.de Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at  Sat, 19 Dec 2009 14:57:09 +0100 
HELO relay.isp.de
250 server03.domain.de Hello [10.224.138.110]
MAIL FROM: <a class="moz-txt-link-abbreviated" href="mailto:verify@isp.de">verify@isp.de</a>
250 2.1.0 <a class="moz-txt-link-abbreviated" href="mailto:verify@isp.de....Sender">verify@isp.de....Sender</a> OK
RCPT TO: <a class="moz-txt-link-abbreviated" href="mailto:non-existent-address@domain.de">non-existent-address@domain.de</a>
550 5.1.1 User unknown
smtpcode = 5xx

</pre>
... evaluate the line "smtpcode =" in ${TEXT},<br>
and sent a message to xymon-server.<br>
<br>
<br>
<br>
Regards,<br>
<br>
Alex<br>
</body>
</html>