Outils

Outils de compte

Outils de recherche


Configuration & test de l’envoi des emails

L'ensemble du tuto est compatible avec les Esia Galaxy, Infinity et Mercury en version supérieur à la 3.2.6.

Configuration du serveur SMTP

Avant de commencer, vous avez besoin d'un serveur mail SMTP capable de relayer les mails générés par votre serveur Esia Galaxy/Infinity. Ce serveur de mail doit bien sur être joignable par celui-ci. Pour accéder à ce serveur de mail, le serveur Esia Galaxy/Infinity devra connaître :

  • l'adresse mail que l'Esia Galaxy utilisera pour envoyer ces emails. (Exemple : no-reply@example.com ou alert@example.com)
  • l'IP ou le nom de domaine de votre serveur de mail de relai.
  • le port SMTP utilisé (25, 465, …).
  • un login d'authentification si nécessaire.
  • le mot de passe correspondant au login si nécessaire.

La syntaxe de la commande est :

esia-configure -S mail -f $EMAIL -r $HOST:$PORT -u $LOGIN -P

Tous les paramètres ne sont pas obligatoires. Ils correspondent à :

  • -S mail (Section) afin de spécifier qu'on souhaite agir sur la section des mails
  • -f $EMAIL (From) remplacez $EMAIL par l'adresse email attribuée au serveur (Exemple : no-reply@example.com)
  • -r $HOST:PORT (Relayhost) remplacez $HOST par l'url de votre serveur mail (smtp.example.com) et $PORT par le port (25,465, …)
  • -u $LOGIN (User) remplacez $LOGIN par l'utilisateur souhaité.
  • -P (Prompt password) pour saisir le mot de passe utilisateur de façon sécurisée. (L'option -p $PASS, utilise dans certains cas, gardera le mot de passe dans l'historique des commandes saisies)

Example :

root@debian-jessie:/# esia-configure -S mail -f alert@example.com -r smtp.example.com:465 -u alert -P
Password:
Confirm password:
This settings will be set :

From  changed => alert@example.com
Relayhost : => smtp.example.com:465
User  changed => alert
Pass changed

Do you wish to apply this ? (y,n) y
root@debian-jessie:/#

Tester l'envoi des emails

Le plugin qui se charge d'envoyer les alertes s'appelle send_mail_html.pl

Il dispose depuis la version 3.2.6 d'outils de diagnostic.

Voici l'aide de ce plugin:

Usage : send_mail.pl -e <id_error> -t <to> -c <esia config file>
SEND MAIL: envoie un email d'alerte
	-e | --error         <string>  identifiant de l'erreur dans la base de données
	                               possibilité de spécifier "test" pour tester les paramètres
	                               possibilité de spécifier "min" pour tester avec une erreur base de données
	-t | --to            <string>  liste des emails destinataires (séparé par des ','
	-c | --config        <path>    fichier de configuration d'Esia (défaut: /etc/esia/esia.conf
	-d | --disable-hello           Désactive l'envoi du Hello
        -s | --ssl                     force l'activation SSL
	-D | --debug                   active le mode débogage
	-v | --verbose       <integer> modifie le niveau de verbosité du mode debug (défaut: 1) 
                                       si égal à 2, il active le debug du client SMTP
	-h | --help                    affiche cette aide

Pour tester les paramètres SMTP, je peux utiliser cette commande:

/usr/local/esia/plugins/alerting/send_mail_html.pl -e test -t support@esia-sa.com

Normalement si tout se passe bien j'aurais comme sortie:

envoi réussi

Nous pouvons également activer le mode “Debug” afin de regarder ce qu'il se passe. Dans ce cas la commande ressemblera à ceci:

/usr/local/esia/plugins/alerting/send_mail_html.pl -e test -t support@esia-sa.com -D

Et voici la sortie correspondante:

DEBUG: Chargement du fichier de configuration: /etc/esia/esia.conf
DEBUG: Connexion à la base de donnée Postgresql
DEBUG: ID de l'erreur selectionné test
DEBUG: Connexion au serveur SMTP: FQDN user:xxxx@esia-sa.com from:xxxx@esia-sa.com helo:xxxx.esia-sa.com
DEBUG: Secure mode
DEBUG: Authentification
DEBUG: Connexion SMTP success
DEBUG: Envoi email de test
DEBUG: Format et encodage de l'email
DEBUG: to support@esia-sa.com subject Test alerting esia
DEBUG: Envoi de l'email
envoi réussi

Erreurs possibles et leurs résolutions

Connection DB Failed

L'erreur affichée ressemblera à ceci

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.

Il y a donc une erreur de paramètre dans le fichier de configuration (ici: le mot de passe est erroné). Il faut donc modifier les paramètres dans le fichier /etc/esia/esia.conf (si vous êtes dans une config par défaut). Attention les paramètres utilisés dans se fichier sont les mêmes que pour le démon principal.

Could not connect to server

Les causes du problèmes sont:

  • L'IP du serveur renseignée est erronée
  • Le serveur Esia n'arrive pas à résoudre le nom DNS (pour vérifier la configuration DNS utiliser: nslookup +FQDN).
  • Le port renseigné n'est pas bon ou pas ouvert
  • Les paramètres SSL ne sont pas configuré: si vous avez renseigné le port 25 et qu'il faut SSL. Tester avec la ligne de commande suivante: send_mail_html.pl -e test -t support@esia-sa.com –ssl

Vous pouvez reconfigurer vos paramètres mails avec la commande

 usage: esia-configure -S mail [-u <user>] [-p <password] [-r <relayhost>:<port>] [-f <from>]

Could not authenticate

Le plugin n'arrive pas à s'authentifier, vérifier vos paramètres de login et de mot de passe

No data found

L'identifiant de l'erreur n'existe pas dans la base de données d'Esia (table: esia_error_happen). Essayez avec un autre ID ou avec le paramètre -e min

Esia config file not found

Le plugin ne trouve pas le fichier de configuration d'Esia (par défaut, il se situe dans /etc/esia/esia.conf). Vérifier votre paramètre -c

Le plugin ne s’arrête pas

Il peut arriver que le plugins ne s’arrête pas, la cause la plus probable est que le serveur mail ne comprend pas les caractère de fin de mail. Cela est souvent du à un problème d'encodage de caractère (charset). Le plugin envoi le mail en UTF-8.

Pour arrêter le plugin faite un ctrl+c dans votre terminal pour récupérer la main. Taper ensuite la commande suivante pour afficher les réponses de votre serveur mail (mode Debug avec une verbosité de 2)

/usr/local/esia/plugins/alerting/send_mail_html.pl -e test -t support@esia-sa.com -D -v 2

Vous aurez la sortie suivante que vous pourrez transférer au support d'Esia.

DEBUG: Chargement du fichier de configuration: /etc/esia/esia.conf
DEBUG: Connexion à la base de donnée Postgresql
DEBUG: ID de l'erreur sélectionné test
DEBUG: Connexion au serveur SMTP: 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>>>           Exporter(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 support@esia-sa.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:<support@esia-sa.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: support@esia-sa.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)>>> Votre test d'envoit d'email a reussi
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
diagnostic/send_mail.txt · Dernière modification: 2021/02/25 10:25 par nicolas

Outils de la page