This tutorial is compatible with Esia Galaxy, Infinity and Mercury versions higher than 3.2.6.
The plugin that sends the alerts is called send_mail_html.pl
Since version 3.2.6 it has included diagnostic tools.
Here is the help for this plugin:
Usage: send_mail.pl -e <id_error> -t <to> -c <esia config file> SEND MAIL: sends an email alert -e | --error <string> error identifier in the database can specify "test" to test the parameters possibility of specifying "min" to test with a database error -t | --to <string> list of recipient emails (separated by ',') -c | --config <path> Esia configuration file (default: /etc/esia/esia.conf -d | --disable-hello Disables sending of Hello -s | --ssl force SSL activation D | --debug enables debug mode -v | --verbose <integer> modifies the debug mode verbosity level (default: 1) if equal to 2, enables SMTP client debugging -h | --help displays this help
To test the SMTP parameters, I can use this command:
/usr/local/esia/plugins/alerting/send_mail_html.pl -e test -t example@mail.com
Normally, if all goes well, I'll get the following output:
successful sending
We can also activate “Debug” mode to see what happens. In this case the command will look like this:
/usr/local/esia/plugins/alerting/send_mail_html.pl -e test -t example@mail.com -D
And here is the corresponding output:
DEBUG: Load configuration file: /etc/esia/esia.conf DEBUG: Connection to Postgresql database DEBUG: Error ID selected test DEBUG: Connection to SMTP server: FQDN user:xxxx@esia-sa.com from:xxxx@esia-sa.com helo:xxxx.esia-sa.com DEBUG: Secure mode DEBUG: Authentication DEBUG: SMTP connection success DEBUG: Send test email DEBUG: Email format and encoding DEBUG: to example@mail.com subject Test alerting esia DEBUG: Email sent successfully sent
The error displayed will look like this
DBI connect('database=esia;host=localhost;port=5432','esia',...) failed: FATAL: password authentication failed for user "esia" FATAL: password authentication failed for user "esia" at ./send_mail_html.pl line 110. Connection DB Failed at ./send_mail_html.pl line 110.
So there is a parameter error in the configuration file (here: the password is wrong). You therefore need to change the parameters in the /etc/esia/esia.conf file (if you are in a default config). Note that the parameters used in this file are the same as for the main daemon.
The causes of the problem are:
You can now reconfigure your email settings with the command
usage: esia-configure -S mail [-u <user>] [-p <password] [-r <relayhost>:<port>] [-f <from>]
The plugin cannot authenticate, check your login and password settings
The error ID does not exist in the Esia database (table: esia_error_happen). Try with another ID or with the parameter -e min
The plugin cannot find the Esia configuration file (by default, it is located in /etc/esia/esia.conf). Check your -c parameter
It can happen that the plugin doesn't stop. The most likely cause is that the mail server doesn't understand the end of mail characters. This is often due to a charset problem. The plugin sends the email in UTF-8.
To stop the plugin, type ctrl+c in your terminal to regain control. Then type the following command to display the responses from your mail server (Debug mode with a verbosity of 2)
/usr/local/esia/plugins/alerting/send_mail_html.pl -e test -t example@mail.com -D -v 2
You will get the following output that you can transfer to Esia support.
DEBUG: Loading the configuration file: /etc/esia/esia.conf DEBUG: Connection to Postgresql database DEBUG: Error ID selected test DEBUG: Connection to SMTP server: xxxxxx:465 user:xxxxxx@esia-sa.com from:xxxxxx@esia-sa.com helo:xxxxx.esia-sa.com DEBUG: Secure mode Net::SMTP::SSL>> Net::SMTP::SSL(1.04) Net::SMTP::SSL>> IO::Socket::SSL(2.044) Net::SMTP::SSL>> IO::Socket::IP(0.37) Net::SMTP::SSL>> IO::Socket(1.38) Net::SMTP::SSL>> IO::Handle(1.36) Net::SMTP::SSL>> Export(5.72) Net::SMTP::SSL>> Net::Cmd(3.08_01) Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 220 GARM-106R006 Thursday, February 25, 2021 Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> EHLO xxxx.esia-sa.com Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-XXX SMTP PROXY Hello Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-SIZE 104857600 Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-ENHANCEDSTATUSCODES Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-AUTH LOGIN PLAIN Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250-AUTH=LOGIN PLAIN Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250 8BITMIME DEBUG: Authentification Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> AUTH LOGIN Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 334 BXNlcm4hbWU0 Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> ZGW2YWxlcnRCZXApYS7zYS8jb10= Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 334 UGFzc2dicmQ9 Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> ZGV2YWxAcnQpMDIx Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 235 2.7.0 Authentication successful DEBUG: Connexion SMTP success DEBUG: Envoi email de test DEBUG: Format et encodage de l'email DEBUG: to example@mail.com subject Test alerting esia DEBUG: Envoi de l'email Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> MAIL FROM:<xxxxxx@esia-sa.com> Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250 2.1.0 Ok Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> RCPT TO:<example@mail.com> Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250 2.1.5 Ok Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> DATA Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 354 End data with <CR><LF>.<CR><LF> Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> To: example@mail.com Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> From: xxx@esia-sa.com Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> Content-Type: text/html; charset="UTF-8" Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> X-Mailer: Perl Sendmail Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> Subject: Test alerting esia Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> Your email test was successful Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> <CR><LF>.<CR><LF> Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> . Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 250 2.0.0 Ok: queued as ACC8E1B75F2EE Net::SMTP::SSL=GLOB(0x5647b2fac010)>>> QUIT Net::SMTP::SSL=GLOB(0x5647b2fac010)<<< 221 esia-sa.com Service closing transmission channel envoi réussi