SMTP
- check SMTP server with check_smtp_send
- send an email message and then check that it was received (check email delivery loop)
- custom headers
- default Date and Message-ID headers are created if not supplied on command line
- custom body message with command line and optinal Nagios variables
- custom body message with stdin
- SSL and SASL support via Net::SMTP::SSL and Authen::SASL
- TLS support via Net::SMTP::TLS
- CRAM-MD5 and more via Net::SMTP_auth
- select CRAM-MD5, LOGIN, or PLAIN authentication even when using TLS
- advanced variable substitution for headers and body of message
- warning and critical thresholds for connection time
- timeout option for connection time
- knows default port numbers: SMTP port 25, SMTP SSL port 465, and SMTP TLS port 587
- send message to multiple recipients or mailboxes
- use DNS to look up the MX record
- use Text::Template to apply special processing to body and headers
- set expected response code to something other than 250 (message accepted)
- three levels of verbose mode to help with troubleshooting
IMAP
- check IMAP server for messages with check_imap_receive
- check IMAP server too few or too many messages with check_imap_receive
- select which mailbox to check (defaults to INBOX)
- use IMAP search feature to select only relevant messages
- capture-max option enables you to compare selected emails and find the highest integer value of interest in them using a regular expression; this value is reported in plugin's output
- capture-min option enables you to compare selected emails and find the lowest integer value of interest in them using a regular expression; this value is reported in plugin's output
- keep or delete messages in search results
- delete selected messages
- option to delete selected messages except the one with the highest or lowest value found by capture-max or capture-min
- plugin output reports elapsed time, number of emails found, value captured (if applicable), and number of emails deleted
- performance data
- SSL support via IO::Socket::SSL
- verify server SSL certificates
- search for a specific message in any mailbox via any IMAP SEARCH criteria
- advanced variable substitution for search parameters
- warning and critical thresholds for connection time
- timeout option for connection time
- automatically re-check mailbox if no messages were found, up to specified number of times with specified delay in between
- knows default port numbers: IMAP port 143 and SMTP SSL port 993
- download messages to search them locally with advanced timeframe options
- optional warning and critical thresholds for minimum or maximum number of matching messages found
- use Text::Template to use sophisticated search criteria, such as timeframe messages was received
- check email quota
Email Delivery Loop
- use other plugins in your loop, not just SMTP and IMAP, with the --plugin option
- create longer loops composed of multiple plugins with the --plugin option
- uses separate plugins for email sending and receiving, so you could use alternative plugins to do this work
- does not use any additional database to keep track of which emails were sent or received... out of the box it stamps sent emails with time sent and it uses the capture-max option of the imap plugin to find the most recent email received, and applies threshold to this difference
- save status into a tab-delimited file to help with running statistics on email delivery loop (--file)
- warning and critical thresholds for connection time or running time of SMTP and IMAP plugins
- custom timeout thresholds for each plugin
- finetune reporting of failures with the alert option
- optional delay between plugins to allow for your mail system to process the email delivery
- specify username and password just once or separately for the SMTP and IMAP plugins
- specify how many times to re-check the IMAP mailbox and how long to wait between them
- use custom headers or body content of the message
- individual message delivery check by including a token value in the sent message and looking for it in the IMAP mailbox
- save status information to a logfile for analysis with a separate program
Have an idea for a new feature? Please send it by email: jonathan@buhacoff.net