376 lines
15 KiB
HTML
Executable File
376 lines
15 KiB
HTML
Executable File
<?xml version="1.0" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>check_smtp_send - connects to an SMTP server and sends a message</title>
|
|
<link rel="stylesheet" href="plainwhite.css" type="text/css" />
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
<link rev="made" href="mailto:jonathan@greek.local" />
|
|
</head>
|
|
|
|
<body>
|
|
|
|
|
|
<!-- INDEX BEGIN -->
|
|
<div name="index">
|
|
<p><a name="__index__"></a></p>
|
|
<!--
|
|
|
|
<ul>
|
|
|
|
<li><a href="#name">NAME</a></li>
|
|
<li><a href="#synopsis">SYNOPSIS</a></li>
|
|
<li><a href="#options">OPTIONS</a></li>
|
|
<li><a href="#examples">EXAMPLES</a></li>
|
|
<ul>
|
|
|
|
<li><a href="#send_a_message_with_custom_headers">Send a message with custom headers</a></li>
|
|
</ul>
|
|
|
|
<li><a href="#exit_codes">EXIT CODES</a></li>
|
|
<li><a href="#nagios_plugin_notes">NAGIOS PLUGIN NOTES</a></li>
|
|
<li><a href="#changes">CHANGES</a></li>
|
|
<li><a href="#author">AUTHOR</a></li>
|
|
<li><a href="#copyright_and_license">COPYRIGHT AND LICENSE</a></li>
|
|
</ul>
|
|
|
|
-->
|
|
|
|
|
|
</div>
|
|
<!-- INDEX END -->
|
|
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="name">NAME</a></h1>
|
|
<p>check_smtp_send - connects to an SMTP server and sends a message</p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="synopsis">SYNOPSIS</a></h1>
|
|
<pre>
|
|
check_smtp_send -vV
|
|
check_smtp_send -?
|
|
check_smtp_send --help</pre>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="options">OPTIONS</a></h1>
|
|
<dl>
|
|
<dt><strong><a name="warning_seconds" class="item">--warning <seconds></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Warn if it takes longer than <seconds> to connect to the SMTP server. Default is 15 seconds.
|
|
Also known as: -w <seconds></p>
|
|
</dd>
|
|
<dt><strong><a name="critical_seconds" class="item">--critical <seconds></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Return a critical status if it takes longer than <seconds> to connect to the SMTP server. Default is 30 seconds.
|
|
Also known as: -c <seconds></p>
|
|
</dd>
|
|
<dt><strong><a name="timeout_seconds" class="item">--timeout <seconds></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Abort with critical status if it takes longer than <seconds> to connect to the SMTP server. Default is 60 seconds.
|
|
The difference between timeout and critical is that, with the default settings, if it takes 45 seconds to
|
|
connect to the server then the connection will succeed but the plugin will return CRITICAL because it took longer
|
|
than 30 seconds.
|
|
Also known as: -t <seconds></p>
|
|
</dd>
|
|
<dt><strong><a name="hostname_server" class="item">--hostname <server></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Address or name of the SMTP server. Examples: mail.server.com, localhost, 192.168.1.100</p>
|
|
<p>If not provided, and if there is only one --mailto address, the script will automatically look up the MX record
|
|
for the --mailto address and use that as the hostname. You can use this to check that your MX records are correct.
|
|
When omitting the --hostname option, it doesn't really make sense to specify --port, --username, or --password
|
|
but you can still do so and they will have their normal effect. To look up the MX records you need to have the
|
|
module Net::DNS and Email::Address installed.</p>
|
|
<p>Also known as: -H <server></p>
|
|
</dd>
|
|
<dt><strong><a name="port_number" class="item">--port <number></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Service port on the SMTP server. Default is 25 for regular SMTP, 465 for SSL, and 587 for TLS.
|
|
Also known as: -p <number></p>
|
|
</dd>
|
|
<dt><strong><a name="tls" class="item">--tls</a></strong></dt>
|
|
|
|
<dt><strong><a name="notls" class="item">--notls</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Enable TLS/AUTH protocol. Requires Net::SMTP::TLS, availble on CPAN.</p>
|
|
<p>When using this option, the default port is 587.
|
|
You can specify a port from the command line using the --port option.</p>
|
|
<p>Use the notls option to turn off the tls option.</p>
|
|
<p>Also, you may need to fix your copy of Net::SMTP::TLS. Here is the diff against version 0.12:</p>
|
|
<pre>
|
|
254c254
|
|
< $me->_command(sprintf("AUTH PLAIN %S",
|
|
---
|
|
> $me->_command(sprintf("AUTH PLAIN %s",</pre>
|
|
</dd>
|
|
<dt><strong><a name="ssl" class="item">--ssl</a></strong></dt>
|
|
|
|
<dt><strong><a name="nossl" class="item">--nossl</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Enable SSL protocol. Requires Net::SMTP::SSL and Authen::SASL, availble on CPAN.</p>
|
|
<p>When using this option, the default port is 465. You can override with the --port option.</p>
|
|
<p>Use the nossl option to turn off the ssl option.</p>
|
|
</dd>
|
|
<dt><strong><a name="auth_method" class="item">--auth <method></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Enable authentication with Net::SMTP_auth (sold separately).
|
|
For example, try using --auth PLAIN or --auth CRAM-MD5.</p>
|
|
</dd>
|
|
<dt><strong><a name="username_username" class="item">--username <username></a></strong></dt>
|
|
|
|
<dt><strong><a name="password_password" class="item">--password <password></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Username and password to use when connecting to SMTP server.
|
|
Also known as: -U <username> -P <password></p>
|
|
</dd>
|
|
<dt><strong><a name="body_message" class="item">--body <message></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Use this option to specify the body of the email message. If you need newlines in your message,
|
|
you might need to use the --stdin option instead.</p>
|
|
</dd>
|
|
<dt><strong><a name="header_header" class="item">--header <header></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Use this option to set an arbitrary header in the message. You can use it multiple times.</p>
|
|
</dd>
|
|
<dt><strong><a name="stdin" class="item">--stdin</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Grab the body of the email message from stdin.</p>
|
|
</dd>
|
|
<dt><strong><a name="mailto_recipient_your_net" class="item">--mailto <a href="mailto:recipient@your.net">recipient@your.net</a></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>You can send a message to multiple recipients by repeating this option or by separating
|
|
the email addresses with commas (no whitespace allowed):</p>
|
|
<p>$ check_smtp_send -H mail.server.net --mailto <a href="mailto:recipient@your.net,recipient2@your.net">recipient@your.net,recipient2@your.net</a> --mailfrom <a href="mailto:sender@your.net">sender@your.net</a></p>
|
|
<p>SMTP SEND OK - 1 seconds</p>
|
|
</dd>
|
|
<dt><strong><a name="mailfrom_sender_your_net" class="item">--mailfrom <a href="mailto:sender@your.net">sender@your.net</a></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Use this option to set the "from" address in the email.</p>
|
|
</dd>
|
|
<dt><strong><a name="template" class="item">--template</a></strong></dt>
|
|
|
|
<dt><strong><a name="notemplate" class="item">--notemplate</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Enable (or disable) processing of message body and headers. Requires Text::Template.</p>
|
|
<p>Use this option to apply special processing to your message body and headers that allows you to use the
|
|
results of arbitrary computations in the text. For example, you can use this feature to send a message
|
|
containing the hostname of the machine that sent the message without customizing the plugin configuration
|
|
on each machine.</p>
|
|
<p>When you enable the --template option, the message body and headers are parsed by
|
|
Text::Template. Even a message body provided using the --stdin option will be parsed.
|
|
See the Text::Template manual for more information, but in general any expression
|
|
written in Perl will work.</p>
|
|
<p>There is one convenience function provided to you, trim, which will remove leading and trailing whitespace
|
|
from its parameter. Here's an example:</p>
|
|
<pre>
|
|
check_smtp_send -H mail.server.net --mailto recipient@your.net --mailfrom sender@your.net
|
|
--template --body 'hello, this message is from {use Sys::Hostname; hostname}'
|
|
--header 'Subject: test message from {trim(`whoami`)}'</pre>
|
|
</dd>
|
|
<dt><strong><a name="expect_response_code" class="item">--expect-response <code></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Use this option to specify which SMTP response code should be expected from the server
|
|
after the SMTP dialog is complete. The default is 250 (message accepted).</p>
|
|
<p>Also known as: -E <code></p>
|
|
</dd>
|
|
<dt><strong><a name="hires" class="item">--hires</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Use the Time::HiRes module to measure time, if available.</p>
|
|
</dd>
|
|
<dt><strong><a name="verbose" class="item">--verbose</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Display additional information. Useful for troubleshooting.</p>
|
|
<p>One --verbose will show extra information for OK, WARNING, and CRITICAL status.</p>
|
|
<p>Use one --verbose together with --version to see the default warning and critical timeout values.</p>
|
|
<p>Three --verbose (or -vvv) will show debug information, unless you're using --tls because Net::SMTP::TLS
|
|
does not have a Debug feature.</p>
|
|
<p>Also known as: -v</p>
|
|
</dd>
|
|
<dt><strong><a name="version" class="item">--version</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Display plugin version and exit.
|
|
Also known as: -V</p>
|
|
</dd>
|
|
<dt><strong><a name="help" class="item">--help</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Display this documentation and exit. Does not work in the ePN version.
|
|
Also known as: -h</p>
|
|
</dd>
|
|
<dt><strong><a name="usage" class="item">--usage</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Display a short usage instruction and exit.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="examples">EXAMPLES</a></h1>
|
|
<p>
|
|
</p>
|
|
<h2><a name="send_a_message_with_custom_headers">Send a message with custom headers</a></h2>
|
|
<p>$ check_smtp_send -H mail.server.net --mailto <a href="mailto:recipient@your.net">recipient@your.net</a> --mailfrom <a href="mailto:sender@your.net">sender@your.net</a>
|
|
--body 'Homeruns 5' --header 'Subject: Hello, world!' --header 'X-Your-Header: Yes'</p>
|
|
<p>SMTP SEND OK - 1 seconds</p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="exit_codes">EXIT CODES</a></h1>
|
|
<p><table cellspacing="0" cellpadding="0"><tr><td>Complies with the Nagios plug-in specification:
|
|
<tr><td> 0<td>OK<td>The plugin was able to check the service and it appeared to be functioning properly
|
|
<tr><td> 1<td>Warning<td>The plugin was able to check the service, but it appeared to be above some "warning" threshold or did not appear to be working properly
|
|
<tr><td> 2<td>Critical<td>The plugin detected that either the service was not running or it was above some "critical" threshold
|
|
<tr><td> 3<td>Unknown<td>Invalid command line arguments were supplied to the plugin or the plugin was unable to check the status of the given hosts/service</table></p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="nagios_plugin_notes">NAGIOS PLUGIN NOTES</a></h1>
|
|
<p>Nagios plugin reference: <a href="http://nagiosplug.sourceforge.net/developer-guidelines.html">http://nagiosplug.sourceforge.net/developer-guidelines.html</a></p>
|
|
<p>This plugin does NOT use Nagios DEFAULT_SOCKET_TIMEOUT (provided by utils.pm as $TIMEOUT) because
|
|
the path to utils.pm must be specified completely in this program and forces users to edit the source
|
|
code if their install location is different (if they realize this is the problem). You can view
|
|
the default timeout for this module by using the --verbose and --version options together. The
|
|
short form is -vV.</p>
|
|
<p>Other than that, it attempts to follow published guidelines for Nagios plugins.</p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="changes">CHANGES</a></h1>
|
|
<pre>
|
|
Wed Oct 29 14:05:00 PST 2005
|
|
+ version 0.1</pre>
|
|
<pre>
|
|
Wed Nov 9 15:01:48 PST 2005
|
|
+ now using an inline PluginReport package to generate the report
|
|
+ added stdin option
|
|
+ copyright notice and GNU GPL
|
|
+ version 0.2</pre>
|
|
<pre>
|
|
Thu Apr 20 16:00:00 PST 2006 (by Geoff Crompton <geoff.crompton@strategicdata.com.au>)
|
|
+ added bailing if the $smtp->to() call fails
|
|
+ added support for mailto recipients separated by commas
|
|
+ version 0.2.1</pre>
|
|
<pre>
|
|
Tue Apr 24 21:17:53 PDT 2007
|
|
+ moved POD text to separate file in order to accomodate the new embedded-perl Nagios feature
|
|
+ version 0.2.3</pre>
|
|
<pre>
|
|
Fri Apr 27 20:26:42 PDT 2007
|
|
+ documentation now mentions every command-line option accepted by the plugin, including abbreviations
|
|
+ version 0.3
|
|
|
|
Sun Oct 21 10:34:14 PDT 2007
|
|
+ added support for TLS and authentication via the Net::SMTP::TLS module. see --tls option.
|
|
+ version 0.4</pre>
|
|
<pre>
|
|
Sun Oct 21 13:54:26 PDT 2007
|
|
+ added support for SSL via the Net::SMTP::SSL module. see --ssl option.
|
|
+ port is no longer a required option. defaults to 25 for regular smtp, 465 for ssl, and 587 for tls.
|
|
+ added port info to the "could not connect" error message
|
|
+ version 0.4.1</pre>
|
|
<pre>
|
|
Tue Dec 4 07:42:32 PST 2007
|
|
+ added --usage option because the official nagios plugins have both --help and --usage
|
|
+ added --timeout option to match the official nagios plugins
|
|
+ fixed some minor pod formatting issues for perldoc
|
|
+ version 0.4.2</pre>
|
|
<pre>
|
|
Mon Feb 11 19:09:37 PST 2008
|
|
+ fixed a bug for embedded perl version, variable "%status" will not stay shared in load_modules
|
|
+ version 0.4.3</pre>
|
|
<pre>
|
|
Mon May 26 09:12:14 PDT 2008
|
|
+ fixed warning and critical messages to use "more than" or "less than" instead of the angle brackets, to make them more web friendly
|
|
+ version 0.4.4
|
|
|
|
Wed Jul 2 07:12:35 PDT 2008
|
|
+ added --expect-response option submitted by Christian Kauhaus <kc@gocept.com>
|
|
+ added support for authentication via Net::SMTP_auth. see --auth option.
|
|
+ version 0.4.5</pre>
|
|
<pre>
|
|
Sun Oct 5 15:18:23 PDT 2008
|
|
+ added error handling for smtp server disconnects ungracefully during QUIT (gmail.com does)
|
|
+ version 0.4.6</pre>
|
|
<pre>
|
|
Thu Oct 1 12:09:35 PDT 2009
|
|
+ added --template option to allow arbitrary substitutions for body and headers, and provided one convenience function for trimming strings
|
|
+ added performance data for use with PNP4Nagios!
|
|
+ version 0.5.0</pre>
|
|
<pre>
|
|
Thu Oct 8 11:17:04 PDT 2009
|
|
+ added more detailed error messages when using --verbose
|
|
+ version 0.5.1</pre>
|
|
<pre>
|
|
Tue Feb 9 12:14:49 PST 2010
|
|
+ added support for combining --auth with --tls using a subclass of Net::SMTP::TLS submitted by Brad Guillory; please note that to use the "PLAIN" authentication type you need to patch your Net::SMTP:TLS because it has a bug in sub auth_PLAIN (sprintf %S instead of %s)
|
|
+ version 0.5.2</pre>
|
|
<pre>
|
|
Mon Jan 3 10:39:42 PST 2011
|
|
+ added default Date and Message-ID headers; Date header uses POSIX strftime and Message-ID header uses hostname command to get localhost name
|
|
+ version 0.7.0</pre>
|
|
<pre>
|
|
Fri May 6 08:35:09 AST 2011
|
|
+ added --hires option to enable use of Time::Hires if available
|
|
+ version 0.7.1</pre>
|
|
<pre>
|
|
Wed Jul 6 19:18:26 AST 2011
|
|
+ the --hostname is now optional; if not provided the plugin will lookup the MX record for the --mailto address (requires Net::DNS)
|
|
+ version 0.7.2</pre>
|
|
<pre>
|
|
Tue Dec 13 09:24:04 PST 2011
|
|
+ separated authentication errors from connection errors
|
|
+ version 0.7.3</pre>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="author">AUTHOR</a></h1>
|
|
<p>Jonathan Buhacoff <<a href="mailto:jonathan@buhacoff.net">jonathan@buhacoff.net</a>></p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="copyright_and_license">COPYRIGHT AND LICENSE</a></h1>
|
|
<pre>
|
|
Copyright (C) 2005-2011 Jonathan Buhacoff</pre>
|
|
<pre>
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.</pre>
|
|
<pre>
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.</pre>
|
|
<pre>
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <<a href="http://www.gnu.org/licenses/>">http://www.gnu.org/licenses/></a>;.</pre>
|
|
<pre>
|
|
<a href="http://www.gnu.org/licenses/gpl.txt">http://www.gnu.org/licenses/gpl.txt</a></pre>
|
|
|
|
</body>
|
|
|
|
</html>
|