Annexes:ConfigurationPostfix : Différence entre versions

De WikiFr_dbSQWare
Aller à : navigation, rechercher
m (Avec les scripts dbSQWare)
m (Logique technique)
 
(50 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
<strong>Page dédiée à la configuration de POSTFIX pour l'envoie des mails de dbSQWare.</strong><br>
+
<strong>Page dédiée à la configuration (minimale) de POSTFIX pour l'envoie des mails de dbSQWare.</strong><br>
 
==Généralités==
 
==Généralités==
 
===Limites de cette section===
 
===Limites de cette section===
Cette procédure présente des scénarii d'envoie de mail par et depuis la machine dbSQWare.<br>
+
Cette procédure présente des scénarii d'envoie de mails par et, ou depuis la machine dbSQWare.<br>
 
<br>
 
<br>
 
Nous partons du principe que vous avez soit installé l'OVF que nous fournissons soit suivi la [[Général:InstallationSocle|procédure d'installation du socle]].<br>
 
Nous partons du principe que vous avez soit installé l'OVF que nous fournissons soit suivi la [[Général:InstallationSocle|procédure d'installation du socle]].<br>
Ligne 8 : Ligne 8 :
 
<br>
 
<br>
 
Si vous avez des habitudes de travail, de configuration, ou d'autres outils dans vos process n'hésitez pas à les appliquer et, ou les utiliser.<br>
 
Si vous avez des habitudes de travail, de configuration, ou d'autres outils dans vos process n'hésitez pas à les appliquer et, ou les utiliser.<br>
 +
<br>
 +
Postfix étant un outil complet, nous ne couvrons que la configuration minimale pour l'envoi de mail depuis et par la VM fournie. Pour des configurations plus poussée, n'hésitez pas à vérifier la documentation officielle.
  
 
===Logique technique===
 
===Logique technique===
Ligne 14 : Ligne 16 :
 
* Les machines de base de données possède un service Postfix se connectant à la machine hébergeant dbSQWare comme serveur relais, suivre : Relais STMP interne dbSQWare.
 
* Les machines de base de données possède un service Postfix se connectant à la machine hébergeant dbSQWare comme serveur relais, suivre : Relais STMP interne dbSQWare.
 
Variantes :
 
Variantes :
* Si vous utilisez pour tous vos services un relais en interne, configurez la VM dbSQWare et les hôtes SGBD en suivant : Relais STMP interne
+
* Si vous utilisez pour tous vos services un relais en interne, configurez la VM dbSQWare et les hôtes SGBD en suivant : Relais STMP "public" (non authentifié)
 +
 
 
===Rappel guide de lecture===
 
===Rappel guide de lecture===
 
Le plus souvent on essaye de vous dire qui lance la commande et sur quel hôte :
 
Le plus souvent on essaye de vous dire qui lance la commande et sur quel hôte :
 
*Si l'utilisateur dbsqware lance une action sur la machine dbsqware on notera From : dbsqware@sqwarebox
 
*Si l'utilisateur dbsqware lance une action sur la machine dbsqware on notera From : dbsqware@sqwarebox
 
*Si c'est avec l'utilisateur root depuis n'importe quelle machine on notera From : root@anyserver
 
*Si c'est avec l'utilisateur root depuis n'importe quelle machine on notera From : root@anyserver
 +
*Si on peut le faire avec n'importe quel utilisateur ayant les scripts dbsqware on notera From : onedbsqwareuser@anyserver
 
<br>
 
<br>
 
Par exemple pour redémarrer le serveur :
 
Par exemple pour redémarrer le serveur :
Ligne 30 : Ligne 34 :
  
 
===Liens utiles===
 
===Liens utiles===
 +
La documentation officielle de postfix :
 +
* https://www.postfix.org/documentation.html
 
Voici l'ensemble des sites de références pour suivre l'état de votre service de messagerie :<br>
 
Voici l'ensemble des sites de références pour suivre l'état de votre service de messagerie :<br>
 
* MXToolBox : https://mxtoolbox.com/
 
* MXToolBox : https://mxtoolbox.com/
Ligne 37 : Ligne 43 :
 
==Installation de Postfix==
 
==Installation de Postfix==
 
<br>
 
<br>
{{information|Si vous avez bien suivi les procédures proposées sur notre wiki ou si vous avez importer notre OVF l'installation est déjà faite sur la VM dbSQWare}}
+
{{information|Si vous avez bien suivi les procédures proposées sur notre wiki ou si vous avez importé notre OVF l'installation est déjà faite sur la VM dbSQWare}}
=== ===
 
=== ===
 
  
 
==Mise en service Postfix==
 
==Mise en service Postfix==
WIP
+
===Relais STMP authentifié===
===Relais STMP externe authentifié===
+
Vous devez changer le paramètre relayhost dans main.cf :
 +
<pre>
 +
vi /etc/postfix/main.cf
 +
[..]
 +
# The relayhost parameter specifies the default host to send mail to
 +
# no relayhost is given, mail is routed directly to the destination.
 +
#relayhost = $mydomain
 +
#relayhost = [gateway.my.domain]
 +
#relayhost = [mailserver.isp.tld]
 +
#relayhost = uucphost
 +
#relayhost = [an.ip.add.ress]
 +
relayhost = [fqdn.yourhost.tld]:port  #ligne à ajouter, note : le port peut changer par défaut c'est 465 ou 587
 +
[..]
 +
</pre>
 +
 
 +
 
 +
Vous devez créer un fichier contenant le mot de passe pour l'authentification de chacun de vos serveurs smtp authentifiés, par exemple si ce fichier sasl_relay_passwd :
 +
<pre>
 +
vi /etc/postfix/sasl_relay_passwd
 +
[fqdn.yourhost.tld]:port username:password
 +
~
 +
</pre>
 +
Vous devez signaler à Postifx tout changement de la table de transport, les credentials pour le relayhost y sont inclus :
 +
<pre>
 +
postmap /etc/postfix/sasl_relay_passwd
 +
</pre>
 +
 
 +
Ajout du chemin du fichier avec les mots de passe, ajoutez à main.cf en dessous de relayhost =  :
 +
<pre>
 +
vi /etc/postfix/main.cf
 +
[..]
 +
relayhost = [fqdn.yourhost.tld]:port
 +
 
 +
## CUSTOM CONFIGURATION
 +
smtp_sasl_auth_enable = yes
 +
smtp_sasl_password_maps = hash:/etc/postfix/sasl_relay_passwd
 +
smtp_sasl_security_options = noanonymous
 +
[..]
 +
 
 +
</pre>
 +
 
 +
Relancer le service Postfix
 +
<pre>
 +
systemctl restart posfix
 +
</pre>
 +
 
 +
===Relais STMP "public" (non authentifié)===
 +
 
 +
Comme précédemment vous devez changer le paramètre relayhost dans main.cf :
 +
<pre>
 +
vi /etc/postfix/main.cf
 +
[..]
 +
# The relayhost parameter specifies the default host to send mail to
 +
# no relayhost is given, mail is routed directly to the destination.
 +
#relayhost = $mydomain
 +
#relayhost = [gateway.my.domain]
 +
#relayhost = [mailserver.isp.tld]
 +
#relayhost = uucphost
 +
#relayhost = [an.ip.add.ress]
 +
relayhost = [fqdn.yourhost.tld]:25  #ligne à ajouter, à noter : le port peut changer
 +
[..]
 +
</pre>
 +
 
 +
====Votre relais est la sqwarebox====
 +
Si votre sqwarebox est correctement paramétrée et envoie déjà des mails nous pouvez l'utiliser comme relais interne de vos serveur SGDB.<br>
 +
Vous devrez vérifier l'ouverture du port souhaité, par défaut c'est le port 25.<br>
 +
Pour ce faire vous pouvez mettre le fqdn de votre sqwarebox à la place de [fqdn.yourhost.tld], sur vos serveurs SGBD.<br>
 +
Vous devrez tout de même mettre à jour les paramètres inet_interfaces et mynetworks_style dans le main.cf de la sqwarebox :
 +
 
 +
<pre>
 +
vi /etc/postfix/main.cf
 +
[..]
 +
# RECEIVING MAIL
 +
 
 +
# The inet_interfaces parameter specifies the network interface
 +
# addresses that this mail system receives mail on.  By default,
 +
[..]
 +
# Note: you need to stop/start Postfix when this parameter changes.
 +
#
 +
inet_interfaces = all
 +
#inet_interfaces = $myhostname
 +
#inet_interfaces = $myhostname, localhost
 +
#inet_interfaces = localhost
 +
[..]
 +
# TRUST AND RELAY CONTROL
 +
 
 +
# The mynetworks parameter specifies the list of "trusted" SMTP
 +
# clients that have more privileges than "strangers".
 +
#
 +
[..]
 +
# your entire provider's network.  Instead, specify an explicit
 +
# mynetworks list by hand, as described below.
 +
#
 +
# Specify "mynetworks_style = host" when Postfix should "trust"
 +
# only the local machine.
 +
#
 +
#mynetworks_style = class
 +
mynetworks_style = subnet
 +
#mynetworks_style = host
 +
[..]
 +
 
 +
</pre>
 +
 
 +
===Test de la configuration===
 +
Vous pouvez envoyer un mail de test avec un utilisateur ayant les scripts dbSQWare
 +
<pre>
 +
dbsqware@srvdbsqware04:~ (SQWareCentral) $ too
 +
total 60
 +
drwxr-x---  2 dbsqware dba  4096 Mar  2 22:11 .
 +
drwxr-x--- 16 dbsqware dba  4096 Mar  2 22:11 ..
 +
-rwxr-x---  1 dbsqware dba  3052 Mar  2 22:11 sqwctl_BackupCustom.ksh
 +
-rwxr-x---  1 dbsqware dba  1784 Mar  2 22:11 sqwctl_DebugFailAsyncFiles.ksh
 +
-rwxr-x---  1 dbsqware dba 17427 Mar  2 22:11 sqwctl_ExportDataCapacity.ksh
 +
-rwxr-x---  1 dbsqware dba 13168 Mar  2 22:11 sqwctl_ExportDataDemo.ksh
 +
lrwxrwxrwx  1 dbsqware dba    40 Jan  2  2022 sqwctl_TestMySQL.ksh -> ../../generic/tools/sqwgen_TestMySQL.ksh
 +
lrwxrwxrwx  1 dbsqware dba    43 Jan  2  2022 sqwctl_TestSendmail.ksh -> ../../generic/tools/sqwgen_TestSendmail.ksh
 +
-rwxr-x---  1 dbsqware dba  7144 Mar  2 22:11 sqwctl_UpdateDemo.ksh
 +
 
 +
dbsqware@srvdbsqware04:~/dbSQWare/SQWareCentral/tools (SQWareCentral) $ ./sqwctl_TestSendmail.ksh
 +
Sourcing sqwctl_Global.lib v2025.02 SQWareCentral (dbSQWare) ...
 +
 
 +
 
 +
eval global vars:
 +
gvsqw_RsyncDefaultUser="$gvsqw_UserExec@RsyncHost" => gvsqw_RsyncDefaultUser=dbsqware@RsyncHost
 +
Log generated in /home/dbsqware/admin/SQWareCentral/logs/TestSendmail/TestSendmail_20250303_105045_356413.log on srvdbsqware04 ...
 +
 
 +
Run check config dbSQWare and sendmail host=srvdbsqware04 : 2025-03-03 10:50:45
 +
 
 +
__________________________________________________________________
 +
Program informations
 +
SqwVersion=2025.02 / 2025.02
 +
Copyright 2007-2025, dbSQWare (www.dbsqware.com)
 +
Linux srvdbsqware04 5.14.0-503.19.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 19 12:55:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
 +
gvsqw_GenPath=/home/dbsqware/dbSQWare/SQWareCentral/tools
 +
Path=/home/dbsqware/dbSQWare/SQWareCentral/tools
 +
./sqwctl_TestSendmail.ksh
 +
dbsqware@srvdbsqware04
  
===Relais STMP externe===
+
sqwctl_TestSend,dbsqware ./sqwctl_TestSendmail.ksh
 +
  `-pstree -aul 356413
 +
__________________________________________________________________
 +
[..]
 +
Summary of returns:
 +
END_TRT Code:  0 check config dbSQWare and sendmail host=srvdbsqware04 --> 2025-03-03 10:50:45
  
===Relais STMP interne dbSQWare===
+
Job check config dbSQWare and sendmail host=srvdbsqware04 proceeded successfully
  
===Relais STMP interne===
+
Sending mail html by sendmail at dev.env@dbsqware.com
 +
 
 +
Begining    : 2025-03-03 10:50:45
 +
End          : 2025-03-03 10:50:46
 +
Duration    : 00:00:01
 +
 
 +
</pre>
 +
Vous pouvez ensuite suivre le statut du mail dans postfix et dans les logs :
 +
<pre>
 +
dbsqware@vmsqwarebox:~/dbSQWare/SQWareCentral/tools (SQWareCentral) $ sudo systemctl status postfix
 +
● postfix.service - Postfix Mail Transport Agent
 +
    Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; preset: disabled)
 +
    Active: active (running) since Wed 2025-02-19 08:51:15 CET; 1 week 5 days ago
 +
    Process: 1037 ExecStartPre=/usr/sbin/restorecon -R /var/spool/postfix/pid (code=exited, status=0/SUCCESS)
 +
    Process: 1048 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
 +
    Process: 1184 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
 +
    Process: 1190 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
 +
  Main PID: 1687 (master)
 +
      Tasks: 7 (limit: 23140)
 +
    Memory: 13.8M
 +
        CPU: 24.148s
 +
    CGroup: /system.slice/postfix.service
 +
            ├─  1687 /usr/libexec/postfix/master -w
 +
            ├─  1689 qmgr -l -t unix -u
 +
            ├─ 71212 tlsmgr -l -t unix -u
 +
            ├─306572 pickup -l -t unix -u
 +
            ├─356692 cleanup -z -t unix -u
 +
            ├─356700 trivial-rewrite -n rewrite -t unix -u
 +
            └─356717 smtp -t unix -u
  
WIP
+
Mar 03 10:20:19 vmsqwarebox postfix/pickup[306572]: 9DC7810D: uid=1000 from=<dbsqware>
 +
Mar 03 10:20:19 vmsqwarebox postfix/cleanup[331772]: 9DC7810D: message-id=<20250303092019.9DC7810D@vmsqwarebox.domain.tld>
 +
Mar 03 10:20:19 vmsqwarebox postfix/qmgr[1689]: 9DC7810D: from=<sender@domain.tld>, size=409, nrcpt=1 (queue active)
 +
Mar 03 10:20:19 vmsqwarebox postfix/smtp[331776]: 9DC7810D: to=<adress@destination.tld>, relay=fqdn.domain.tld[IP.IP.IP.IP]:port, delay=0.31, delays=0.04/0.06/0.17/0.04, dsn=2.0.0, status=sent (250 2.0.0>
 +
Mar 03 10:20:19 vmsqwarebox postfix/qmgr[1689]: 9DC7810D: removed
 +
Mar 03 10:50:46 vmsqwarebox postfix/pickup[306572]: 22828156: uid=1000 from=<dbsqware>
 +
Mar 03 10:50:46 vmsqwarebox postfix/cleanup[356692]: 22828156: message-id=<20250303095046.22828156@vmsqwarebox.domain.tld>
 +
Mar 03 10:50:46 vmsqwarebox postfix/qmgr[1689]: 22828156: from=<sender@domain.tld>, size=13255, nrcpt=1 (queue active)
 +
Mar 03 10:50:46 vmsqwarebox postfix/smtp[356717]: 22828156: to=<adress@destination.tld>, relay=fqdn.domain.tld[IP.IP.IP.IP]:port, delay=0.29, delays=0.04/0.07/0.14/0.04, dsn=2.0.0, status=sent (250 2.0.0>
 +
Mar 03 10:50:46 vmsqwarebox postfix/qmgr[1689]: 22828156: removed
 +
</pre>
 +
Directement dans la log en cours /var/log/maillog :
 +
<pre>
 +
cat /var/log/maillog
 +
Mar  3 10:20:19 srvdbsqware04 postfix/pickup[306572]: 9DC7810D: uid=1000 from=<dbsqware>
 +
Mar  3 10:20:19 srvdbsqware04 postfix/cleanup[331772]: 9DC7810D: message-id=<20250303092019.9DC7810D@vmsqwarebox.domain.tld>
 +
Mar  3 10:20:19 srvdbsqware04 postfix/qmgr[1689]: 9DC7810D: from=<sender@domain.tld>, size=409, nrcpt=1 (queue active)
 +
Mar  3 10:20:19 srvdbsqware04 postfix/smtp[331776]: 9DC7810D: to=<adress@destination.tld>, relay=fqdn.domain.tld[IP.IP.IP.IP]:port, delay=0.31, delays=0.04/0.06/0.17/0.04, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4Z5tZW6V7mzywV)
 +
Mar  3 10:20:19 srvdbsqware04 postfix/qmgr[1689]: 9DC7810D: removed
 +
Mar  3 10:50:46 srvdbsqware04 postfix/pickup[306572]: 22828156: uid=1000 from=<dbsqware>
 +
Mar  3 10:50:46 srvdbsqware04 postfix/cleanup[356692]: 22828156: message-id=<20250303095046.22828156@vmsqwarebox.domain.tld>
 +
Mar  3 10:50:46 srvdbsqware04 postfix/qmgr[1689]: 22828156: from=<sender@domain.tld>, size=13255, nrcpt=1 (queue active)
 +
Mar  3 10:50:46 srvdbsqware04 postfix/smtp[356717]: 22828156: to=<adress@destination.tld>, relay=fqdn.domain.tld[IP.IP.IP.IP]:port, delay=0.29, delays=0.04/0.07/0.14/0.04, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4Z5vFf2nKzz116F)
 +
Mar  3 10:50:46 srvdbsqware04 postfix/qmgr[1689]: 22828156: removed
 +
 
 +
</pre>
 +
 
 +
<br>
 +
{{warning| En fonction des paramètres SPF de votre domaine de nombreuses options supplémentaires peuvent être nécessaires}}
  
 
==Modification d'une configuration existante==
 
==Modification d'une configuration existante==
 +
Les modifications et manipulations présentées dans cette section sont à faire avec l'utilisateur root.<br>
 +
<br>
 +
On partira du principe que le service Postfix est fonctionnel et que l'envoie de mail fonctionne, ou fonctionnait.
 +
 +
===Vérification de la configuration actuelle===
 +
Pour vérifier quel est le relayhost configuré sur le serveur :
 +
<pre>
 +
cat /etc/postfix/main.cf | grep relayhost
 +
# The relayhost parameter specifies the default host to send mail to
 +
# no relayhost is given, mail is routed directly to the destination.
 +
#relayhost = $mydomain
 +
#relayhost = [gateway.my.domain]
 +
#relayhost = [mailserver.isp.tld]
 +
#relayhost = uucphost
 +
#relayhost = [an.ip.add.ress]
 +
relayhost = [fqdn.yourhost.tld]:587
 +
</pre>
 +
 +
Pour vérifier la configuration sasl sur le serveur :
 +
<pre>
 +
cat /etc/postfix/main.cf | grep smtp_sasl
 +
smtp_sasl_auth_enable = yes
 +
smtp_sasl_password_maps = hash:/etc/postfix/sasl_relay_passwd
 +
smtp_sasl_security_options = noanonymous
 +
 +
</pre>
 +
 +
Pour vérifier les restrictions sur l'envoi vers et depuis le serveur (peut être absent) :
 +
<pre>
 +
cat /etc/postfix/main.cf | grep smtpd_sender_restrictions -A3
 +
smtpd_sender_restrictions =
 +
  permit_mynetworks
 +
  permit_sasl_authenticated
 +
  reject_unknown_reverse_client_hostname
 +
 +
</pre>
  
 
===Changements sur le relais SMTP===
 
===Changements sur le relais SMTP===
WIP
+
Si vous changez de relais SMTP ou simplement son port vous devrez mettre à jour le fichier /etc/postfix/main.cf :
 +
<pre>
 +
vi /etc/postfix/main.cf
 +
[..]
 +
# The relayhost parameter specifies the default host to send mail to
 +
# no relayhost is given, mail is routed directly to the destination.
 +
#relayhost = $mydomain
 +
#relayhost = [gateway.my.domain]
 +
#relayhost = [mailserver.isp.tld]
 +
#relayhost = uucphost
 +
#relayhost = [an.ip.add.ress]
 +
relayhost = [newfqdn.yourhost.tld]:port  #ligne à modifier
 +
[..]
 +
</pre>
 +
Si vous utilisez un relais authentifié vous devrez mettre à jour les informations d'authentification (voir paragraphe suivant).
 +
 
 +
===Changement de compte et, ou de mot de passe===
 +
Vous devez identifier le fichier contenant le mot de passe pour l'authentification de chacun de vos serveurs smtp authentifiés :
 +
<pre>
 +
cat /etc/postfix/main.cf | grep smtp_sasl_password_maps
 +
smtp_sasl_password_maps = hash:/etc/postfix/sasl_relay_passwd
 +
 
 +
</pre>
 +
 
 +
Vous devez ensuite modifier ce fichier :
 +
<pre>
 +
vi /etc/postfix/sasl_relay_passwd
 +
[newfqdn.yourhost.tld]:port newusername:newpassword
 +
~
 +
</pre>
 +
Vous devez signaler à Postifx le changement :
 +
<pre>
 +
postmap /etc/postfix/sasl_relay_passwd
 +
</pre>
  
===Changement de compte===
 
WIP
 
===Changement de mot de passe===
 
WIP
 
 
==Actions de maintenance==
 
==Actions de maintenance==
 
===Envoyer un mail de test===
 
===Envoyer un mail de test===
Ligne 72 : Ligne 338 :
  
 
Pour tester l'envoie de mail via nos scripts, sur tous les serveurs avec nos scripts dans tools vous avez le script sqw<moteur>_TestSendmail.ksh
 
Pour tester l'envoie de mail via nos scripts, sur tous les serveurs avec nos scripts dans tools vous avez le script sqw<moteur>_TestSendmail.ksh
<syntaxhighlight lang="sh" line>
+
<pre>
 
# From onedbsqwareuser@anyserver
 
# From onedbsqwareuser@anyserver
dbsqware@srvdbsqware04:/home/dbsqware (SQWareCentral) $
+
dbsqware@srvdbsqware:/home/dbsqware (SQWareCentral) $
 
#
 
#
 
too
 
too
Ligne 89 : Ligne 355 :
  
  
dbsqware@srvdbsqware04:/home/dbsqware/dbSQWare/SQWareCentral/tools (SQWareCentral) $
+
dbsqware@srvdbsqware:/home/dbsqware/dbSQWare/SQWareCentral/tools (SQWareCentral) $
 
#
 
#
 
./sqwctl_TestSendmail.ksh
 
./sqwctl_TestSendmail.ksh
Ligne 97 : Ligne 363 :
 
eval global vars:
 
eval global vars:
 
gvsqw_RsyncDefaultUser="$gvsqw_UserExec@RsyncHost" => gvsqw_RsyncDefaultUser=dbsqware@RsyncHost
 
gvsqw_RsyncDefaultUser="$gvsqw_UserExec@RsyncHost" => gvsqw_RsyncDefaultUser=dbsqware@RsyncHost
Log generated in /home/dbsqware/admin/SQWareCentral/logs/TestSendmail/TestSendmail_20250225_143050_485199.log on srvdbsqware04 ...
+
Log generated in /home/dbsqware/admin/SQWareCentral/logs/TestSendmail/TestSendmail_20250225_143050_485199.log on srvdbsqware ...
  
Run check config dbSQWare and sendmail host=srvdbsqware04 : 2025-02-25 14:30:50
+
Run check config dbSQWare and sendmail host=srvdbsqware : 2025-02-25 14:30:50
  
 
__________________________________________________________________
 
__________________________________________________________________
Ligne 105 : Ligne 371 :
 
SqwVersion=2025.01 / 2025.01
 
SqwVersion=2025.01 / 2025.01
 
Copyright 2007-2025, dbSQWare (www.dbsqware.com)
 
Copyright 2007-2025, dbSQWare (www.dbsqware.com)
Linux srvdbsqware04 5.14.0-503.19.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 19 12:55:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
+
Linux srvdbsqware 5.14.0-503.19.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 19 12:55:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
 
gvsqw_GenPath=/home/dbsqware/dbSQWare/SQWareCentral/tools
 
gvsqw_GenPath=/home/dbsqware/dbSQWare/SQWareCentral/tools
 
Path=/home/dbsqware/dbSQWare/SQWareCentral/tools
 
Path=/home/dbsqware/dbSQWare/SQWareCentral/tools
 
./sqwctl_TestSendmail.ksh
 
./sqwctl_TestSendmail.ksh
dbsqware@srvdbsqware04
+
dbsqware@srvdbsqware
  
 
sqwctl_TestSend,dbsqware ./sqwctl_TestSendmail.ksh
 
sqwctl_TestSend,dbsqware ./sqwctl_TestSendmail.ksh
Ligne 119 : Ligne 385 :
  
 
SHELL=/bin/bash
 
SHELL=/bin/bash
gvsqw_UserExec=dbsqware
+
 
gvsqw_RsyncProtocol_srvdbmulti01=--protocol=29
+
[..résultats omis..]
gvsqw_AwrMailOption=-NoMail
+
 
gvsqw_CommandPathVersionListExtra=
 
HISTCONTROL=ignoredups
 
gvsqw_SubMail=Job issue
 
gvsqw_TdsVersion=auto
 
gvsqw_ConnectDb=Enable
 
HOSTNAME=srvdbsqware04
 
HISTSIZE=9999
 
gvsqw_LogFile=/home/dbsqware/admin/SQWareCentral/logs/TestSendmail/TestSendmail_20250225_143050_485199.log
 
gvsqw_TmpFile=/var/tmp/SQWareCentral/TestSendmail/TestSendmailSQWareCentral485199
 
gvsqw_MailFile=/var/tmp/SQWareCentral/TestSendmail/TestSendmailSQWareCentral485199.mail
 
gvsqw_TraceBackup=enable
 
gvsqw_NetBackupPath=/usr/openv/netbackup
 
gvsqw_SQWareProductionPath=/home/dbsqware/dbSQWare/SQWareProduction
 
gvsqw_AsyncSqlDirTmp=/home/dbsqware/admin/SQWareCentral/logs/AsyncSqlDirTmp
 
gvsqw_SqwVersionDbms=2025.01
 
lvsqw_Param=
 
gvsqw_GlobalSyncTimeout=1200
 
gvsqw_AsynchronousFilesDirTmp=/home/dbsqware/admin/AsynchronousFilesTmp
 
gvsqw_AsynchronousAggressivenessRun=0
 
gvsqw_GenPath=/home/dbsqware/dbSQWare/SQWareCentral/tools
 
gvsqw_CommandPathVersionList=bash;--version ksh;--version rsync;--version openssl;version python;--version php;--version
 
gvsqw_TmpDir=/var/tmp/SQWareCentral/TestSendmail
 
gvsqw_WebDbaURL=http://webdba.dbsqware.local
 
gvsqw_PreFormatHtlml=enable
 
gvsqw_IfSendmail=0
 
gvsqw_AsyncSqlFileCpt=0
 
gvsqw_AsynchronousFilesSuppLogsHisto=30
 
gvsqw_NbThread=4
 
EDITOR=vi
 
gvsqw_LogDir=/home/dbsqware/admin/SQWareCentral/logs/TestSendmail
 
gvsqw_AggressivenessRun=1
 
PWD=/home/dbsqware/dbSQWare/SQWareCentral/tools
 
gvsqw_TraceJob=0
 
gvsqw_Lang=fr
 
gvsqw_RdbmsTrigram=Ctl
 
LOGNAME=dbsqware
 
gvsqw_GlobalMail=dev.env@dbsqware.com
 
XDG_SESSION_TYPE=tty
 
gvsqw_BasenameExe=basename
 
gvsqw_MailSender=dbsqware'@'srvdbsqware04
 
gvsqw_AsynchronousAggressivenessCheckEnd=1
 
gvsqw_ColorGen=\033[37;40m
 
gvsqw_AsynchronousFilesSuppSqlHisto=10
 
gvsqw_SendReport=Enable
 
gvsqw_RsyncDefaultUser=dbsqware@RsyncHost
 
gvsqw_RsyncOptions=ssh -o BatchMode=yes -o StrictHostKeyChecking=no
 
gvsqw_MysqlErrorMsg=ERROR |FAILED |ERREUR |ECHEC | ERROR:| FAILED:| ERREUR:| ECHEC:|Couldn.t execute |unknown option | doesn.t exist
 
gvsqw_RunSQWarePredict=Enable
 
gvsqw_RdbmsType=SQWareCentral
 
gvsqw_PredictMinSizeSchDb_postgres=800
 
gvsqw_SQWarePredictPath=/home/dbsqware/dbSQWare/SQWarePredict
 
gvsqw_AggressivenessCheckEnd=10
 
gvsqw_SendMailFileMaxLine=2000
 
gvsqw_SshOptions=-q -o BatchMode=yes -o StrictHostKeyChecking=no
 
gvsqw_AsyncSqlFileRoot=20250225_143050_485199_sqwctl_TestSendmail
 
gvsqw_RsyncDefaultSourceDir=ToBeDefine
 
MOTD_SHOWN=pam
 
gvsqw_ViaXoftDeliveryLocalArch=/data/mysql/delivery_local_arch
 
gvsqw_Mute=0
 
gvsqw_UpLoadLogFileMaxLine=200
 
HOME=/home/dbsqware
 
gvsqw_PathProgName=.
 
LANG=en_US.UTF-8
 
gvsqw_NoMail=Disable
 
gvsqw_dbSQWareScript=True
 
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:
 
OPENSSL_CONF=/home/dbsqware/.ssh/openssl.cnf
 
gvsqw_GenLogFilePid=0
 
gvsqw_Print=echo
 
gvsqw_InitInstanceSourceCommand=. ~/.profile
 
gvsqw_TraceJobDb=enable
 
gvsqw_MySqlCentralCnfFile=/home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf
 
gvsqw_WebDbaDirAwr=/home/dbsqware/dbSQWare/SQWareWeb/sqw_oracle_awr/
 
gvsqw_SslCipher=-aes-256-cbc
 
gvsqw_RdbmsTarget=all
 
gvsqw_IndicDateFull=2025-02-25 14:30:50
 
gvsqw_PredictMinSizeSchDb_mssql=400
 
gvsqw_DisplayNumberBlank=  0
 
gvsqw_MySqlInsertMode=Async
 
gvsqw_SuppLogsHisto=30
 
SSH_CONNECTION=10.10.10.8 12584 192.168.231.23 22
 
gvsqw_ViaXoftDeliveryCentral=/data/dbsqware/delivery_central
 
gvsqw_AsyncSqlDir=/home/dbsqware/admin/SQWareCentral/logs/AsyncSqlDir
 
gvsqw_AsynchronousFilesDirArch=/home/dbsqware/admin/AsynchronousFilesArch
 
gvsqw_UpLoadMailFileMaxLine=400
 
gvsqw_RsyncDefaultTargetDir=ToBeDefine
 
gvsqw_MySqlInsertOption=
 
gvsqw_RdbmsName=Central
 
gvsqw_RunJobFullOutput=disable
 
gvsqw_UpLoadLogFile=enable
 
gvsqw_SQWareCentralPath=/home/dbsqware/dbSQWare/SQWareCentral
 
gvsqw_AlwaysListFS=/;/var;/var/tmp;/var/log
 
gvsqw_AsyncLogDirTmp=/home/dbsqware/admin/SQWareCentral/logs/AsyncLogDirTmp
 
gvsqw_SshOptionsNoQuiet=-o BatchMode=yes -o StrictHostKeyChecking=no
 
gvsqw_TdsTimeOut=120
 
gvsqw_SuppArchAlert=30
 
gvsqw_HostType=Linux
 
gvsqw_RootAdminDisable=/home/dbsqware/admin/SQWareCentral
 
XDG_SESSION_CLASS=user
 
TERM=xterm
 
gvsqw_ColorMsg=\033[35;40m
 
LESSOPEN=||/usr/bin/lesspipe.sh %s
 
USER=dbsqware
 
gvsqw_GlobalSyncWait=0.1
 
gvsqw_CtlBin=/home/dbsqware/dbSQWare/SQWareCentral/tools
 
gvsqw_ProgName=sqwctl_TestSendmail.ksh
 
gvsqw_MailSubjetForceCase=NoCase
 
gvsqw_PredictMinSizeSchDb_sybase=600
 
gvsqw_SendmailExe=sendmail
 
gvsqw_DfOpt=-Pk
 
gvsqw_AsynchronousNbThread=6
 
gvsqw_ResultFile=/var/tmp/SQWareCentral/TestSendmail/TestSendmailSQWareCentral485199.res
 
gvsqw_Hostname=srvdbsqware04
 
gvsqw_SqwVersion=2025.01
 
gvsqw_TdsTextSize=64512
 
gvsqw_GlobalPid=485199
 
gvsqw_GlobalTmpDir=/var/tmp
 
SHLVL=2
 
gvsqw_RsyncWaitTimeOut=3600
 
gvsqw_SuppTapeFilesLists=5
 
lvsqw_Exec=Disable
 
gvsqw_ViaXoftDeliveryLocal=/data/mysql/delivery_local
 
lvsqw_FlagDatabase=Disable
 
lvsqw_AsyncSqlFile=20250225_143050_485199_sqwctl_TestSendmail_0.sql
 
gvsqw_GzipLogsHisto=3
 
XDG_SESSION_ID=6100
 
gvsqw_RootAdmin=/home/dbsqware/admin/SQWareCentral
 
gvsqw_TimeOut=7200
 
gvsqw_SslPassFile=/home/dbsqware/sqwConfig/.ssl
 
gvsqw_BeginningTrt=2025-02-25 14:30:50
 
LD_LIBRARY_PATH=/home/dbsqware/dbSQWare/SQWarePredict/python/3.12.8/lib:
 
gvsqw_PredictMinSizeSchDb_mysql=300
 
XDG_RUNTIME_DIR=/run/user/1000
 
gvsqw_AsynchronousFilesDir=/home/dbsqware/admin/AsynchronousFiles
 
S_COLORS=auto
 
gvsqw_SshOptionsInteractive=-o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=10
 
SSH_CLIENT=10.10.10.8 12584 22
 
gvsqw_SuppBckCfg=30
 
gvsqw_WebDbaUser=dbsqware@srvdbsqware04
 
gvsqw_CentralPidTrace=-1
 
gvsqw_RdbmsRoot=ctl
 
which_declare=declare -f
 
gvsqw_PathList=HOME;gvsqw_RootAdmin;gvsqw_RootCfg;gvsqw_AsynchronousFilesDirArch;gvsqw_WebDbaDirSlowQuery;gvsqw_WebDbaDirAwr
 
gvsqw_IfMySQL=0
 
gvsqw_Env=PRD
 
gvsqw_GlobalMsgMail=TrtCtlAutoPRD-DEVDBS
 
gvsqw_SizeMinTableIndicators=10
 
gvsqw_RootCfg=/home/dbsqware/admin/SQWareCentral/cfg
 
XDG_DATA_DIRS=/home/dbsqware/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
 
PATH=/home/dbsqware/dbSQWare/SQWarePredict/python/3.12.8/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/ccs/bin:/usr/local/sbin:/usr/openwin/bin:/usr/bin:/usr/lib:/usr/sbin:/bin:/sbin
 
gvsqw_WebDbaDirSlowQuery=/home/dbsqware/dbSQWare/SQWareWeb/sqw_mysql_slow/
 
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
 
gvsqw_InstanceNameForceCase=UpperCase
 
gvsqw_EchoOpt=-e
 
MAIL=/var/spool/mail/dbsqware
 
SSH_TTY=/dev/pts/0
 
gvsqw_DbAlias=SQWareCentral
 
gvsqw_Colors=enable
 
gvsqw_ScpOptions=-o BatchMode=yes -o StrictHostKeyChecking=no
 
gvsqw_DateFullIso=20250225_143050
 
gvsqw_AsyncLogDir=/home/dbsqware/admin/SQWareCentral/logs/AsyncLogDir/TestSendmail
 
gvsqw_DistPasswdFile=/home/dbsqware/.passwd_SQWareCentral
 
gvsqw_ViaXoftDeliveryCentralArch=/data/dbsqware/delivery_central_arch
 
gvsqw_IndicDate=2025-02-25
 
gvsqw_MySQLExe=mysql
 
gvsqw_Ptree=sqwctl_TestSend,dbsqware ./sqwctl_TestSendmail.ksh
 
  `-pstree -aul 485199
 
gvsqw_EgrepIvFs=Filesystem|Disponible
 
OLDPWD=/home/dbsqware
 
gvsqw_MailInfoProgFile=/home/dbsqware/tmp/infos_mail_swq485199.txt
 
gvsqw_PredictMinSizeSchDb_oracle=700
 
gvsqw_LockFileWaitTimeOut=3600
 
BASH_FUNC_which%%=() {  ( alias;
 
eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
 
}
 
 
_=/usr/bin/env
 
_=/usr/bin/env
  
 
Summary of returns:
 
Summary of returns:
END_TRT Code:  0 check config dbSQWare and sendmail host=srvdbsqware04 --> 2025-02-25 14:30:50
+
END_TRT Code:  0 check config dbSQWare and sendmail host=srvdbsqware --> 2025-02-25 14:30:50
  
Job check config dbSQWare and sendmail host=srvdbsqware04 proceeded successfully
+
Job check config dbSQWare and sendmail host=srvdbsqware proceeded successfully
  
 
Sending mail html by sendmail at <$gvsqw_GlobalMail>
 
Sending mail html by sendmail at <$gvsqw_GlobalMail>
Ligne 310 : Ligne 401 :
 
Duration    : 00:00:00
 
Duration    : 00:00:00
  
 
+
</pre>
</syntaxhighlight>
 
  
 
====Avec une commande autonome====
 
====Avec une commande autonome====
 +
Selon la configuration de votre serveur vous devrez peut-être installer un paquet avec la commande mail (ou équivalent : email, s-nail, mailx, ...)
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
 
# From anyuser@anyserver
 
# From anyuser@anyserver
Ligne 361 : Ligne 452 :
 
Les logs de Postfix sont situés dans /var/log/maillog
 
Les logs de Postfix sont situés dans /var/log/maillog
  
Lors de votre interventions pour voir la log en temps réel sur votre second écran :
+
Lors de vos manipulations pour voir la log en temps réel dans une autre fenêtre :
 
<syntaxhighlight lang="sh" line>
 
<syntaxhighlight lang="sh" line>
 
# From : dbsqware@sqwarebox
 
# From : dbsqware@sqwarebox

Version actuelle datée du 4 mars 2025 à 13:53

Page dédiée à la configuration (minimale) de POSTFIX pour l'envoie des mails de dbSQWare.

Généralités

Limites de cette section

Cette procédure présente des scénarii d'envoie de mails par et, ou depuis la machine dbSQWare.

Nous partons du principe que vous avez soit installé l'OVF que nous fournissons soit suivi la procédure d'installation du socle.
Cela permet d'être certains que l'ensemble des paquets nécessaires sont installés.

Si vous avez des habitudes de travail, de configuration, ou d'autres outils dans vos process n'hésitez pas à les appliquer et, ou les utiliser.

Postfix étant un outil complet, nous ne couvrons que la configuration minimale pour l'envoi de mail depuis et par la VM fournie. Pour des configurations plus poussée, n'hésitez pas à vérifier la documentation officielle.

Logique technique

La mise en œuvre que nous vous proposons est la suivante :

  • La machine hébergeant dbSQWare possède un service Postfix se connectant à un relais SMTP avec un compte authentifié, suivre Relais STMP externe authentifié
  • Les machines de base de données possède un service Postfix se connectant à la machine hébergeant dbSQWare comme serveur relais, suivre : Relais STMP interne dbSQWare.

Variantes :

  • Si vous utilisez pour tous vos services un relais en interne, configurez la VM dbSQWare et les hôtes SGBD en suivant : Relais STMP "public" (non authentifié)

Rappel guide de lecture

Le plus souvent on essaye de vous dire qui lance la commande et sur quel hôte :

  • Si l'utilisateur dbsqware lance une action sur la machine dbsqware on notera From : dbsqware@sqwarebox
  • Si c'est avec l'utilisateur root depuis n'importe quelle machine on notera From : root@anyserver
  • Si on peut le faire avec n'importe quel utilisateur ayant les scripts dbsqware on notera From : onedbsqwareuser@anyserver


Par exemple pour redémarrer le serveur :

1 # From : dbsqware@sqwarebox
2 sudo shutdown -r now
3 
4 # From : root@anyserver
5 shutdown -r now

Liens utiles

La documentation officielle de postfix :

Voici l'ensemble des sites de références pour suivre l'état de votre service de messagerie :

Installation de Postfix


Information.png
Information:
Si vous avez bien suivi les procédures proposées sur notre wiki ou si vous avez importé notre OVF l'installation est déjà faite sur la VM dbSQWare.


Mise en service Postfix

Relais STMP authentifié

Vous devez changer le paramètre relayhost dans main.cf :

vi /etc/postfix/main.cf
[..]
# The relayhost parameter specifies the default host to send mail to
# no relayhost is given, mail is routed directly to the destination.
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
relayhost = [fqdn.yourhost.tld]:port  #ligne à ajouter, note : le port peut changer par défaut c'est 465 ou 587
[..]


Vous devez créer un fichier contenant le mot de passe pour l'authentification de chacun de vos serveurs smtp authentifiés, par exemple si ce fichier sasl_relay_passwd :

vi /etc/postfix/sasl_relay_passwd 
[fqdn.yourhost.tld]:port username:password
~

Vous devez signaler à Postifx tout changement de la table de transport, les credentials pour le relayhost y sont inclus :

postmap /etc/postfix/sasl_relay_passwd

Ajout du chemin du fichier avec les mots de passe, ajoutez à main.cf en dessous de relayhost =  :

vi /etc/postfix/main.cf
[..]
relayhost = [fqdn.yourhost.tld]:port 

## CUSTOM CONFIGURATION
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_relay_passwd
smtp_sasl_security_options = noanonymous
[..]

Relancer le service Postfix

systemctl restart posfix

Relais STMP "public" (non authentifié)

Comme précédemment vous devez changer le paramètre relayhost dans main.cf :

vi /etc/postfix/main.cf
[..]
# The relayhost parameter specifies the default host to send mail to
# no relayhost is given, mail is routed directly to the destination.
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
relayhost = [fqdn.yourhost.tld]:25  #ligne à ajouter, à noter : le port peut changer
[..]

Votre relais est la sqwarebox

Si votre sqwarebox est correctement paramétrée et envoie déjà des mails nous pouvez l'utiliser comme relais interne de vos serveur SGDB.
Vous devrez vérifier l'ouverture du port souhaité, par défaut c'est le port 25.
Pour ce faire vous pouvez mettre le fqdn de votre sqwarebox à la place de [fqdn.yourhost.tld], sur vos serveurs SGBD.
Vous devrez tout de même mettre à jour les paramètres inet_interfaces et mynetworks_style dans le main.cf de la sqwarebox :

vi /etc/postfix/main.cf
[..]
# RECEIVING MAIL

# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on.  By default,
[..]
# Note: you need to stop/start Postfix when this parameter changes.
#
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
[..]
# TRUST AND RELAY CONTROL

# The mynetworks parameter specifies the list of "trusted" SMTP
# clients that have more privileges than "strangers".
#
[..]
# your entire provider's network.  Instead, specify an explicit
# mynetworks list by hand, as described below.
#
# Specify "mynetworks_style = host" when Postfix should "trust"
# only the local machine.
#
#mynetworks_style = class
mynetworks_style = subnet
#mynetworks_style = host
[..]

Test de la configuration

Vous pouvez envoyer un mail de test avec un utilisateur ayant les scripts dbSQWare

dbsqware@srvdbsqware04:~ (SQWareCentral) $ too
total 60
drwxr-x---  2 dbsqware dba  4096 Mar  2 22:11 .
drwxr-x--- 16 dbsqware dba  4096 Mar  2 22:11 ..
-rwxr-x---  1 dbsqware dba  3052 Mar  2 22:11 sqwctl_BackupCustom.ksh
-rwxr-x---  1 dbsqware dba  1784 Mar  2 22:11 sqwctl_DebugFailAsyncFiles.ksh
-rwxr-x---  1 dbsqware dba 17427 Mar  2 22:11 sqwctl_ExportDataCapacity.ksh
-rwxr-x---  1 dbsqware dba 13168 Mar  2 22:11 sqwctl_ExportDataDemo.ksh
lrwxrwxrwx  1 dbsqware dba    40 Jan  2  2022 sqwctl_TestMySQL.ksh -> ../../generic/tools/sqwgen_TestMySQL.ksh
lrwxrwxrwx  1 dbsqware dba    43 Jan  2  2022 sqwctl_TestSendmail.ksh -> ../../generic/tools/sqwgen_TestSendmail.ksh
-rwxr-x---  1 dbsqware dba  7144 Mar  2 22:11 sqwctl_UpdateDemo.ksh

dbsqware@srvdbsqware04:~/dbSQWare/SQWareCentral/tools (SQWareCentral) $ ./sqwctl_TestSendmail.ksh
Sourcing sqwctl_Global.lib v2025.02 SQWareCentral (dbSQWare) ...


eval global vars:
gvsqw_RsyncDefaultUser="$gvsqw_UserExec@RsyncHost" => gvsqw_RsyncDefaultUser=dbsqware@RsyncHost
Log generated in /home/dbsqware/admin/SQWareCentral/logs/TestSendmail/TestSendmail_20250303_105045_356413.log on srvdbsqware04 ...

Run check config dbSQWare and sendmail host=srvdbsqware04 : 2025-03-03 10:50:45

__________________________________________________________________
Program informations
SqwVersion=2025.02 / 2025.02
Copyright 2007-2025, dbSQWare (www.dbsqware.com)
Linux srvdbsqware04 5.14.0-503.19.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 19 12:55:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
gvsqw_GenPath=/home/dbsqware/dbSQWare/SQWareCentral/tools
Path=/home/dbsqware/dbSQWare/SQWareCentral/tools
./sqwctl_TestSendmail.ksh
dbsqware@srvdbsqware04

sqwctl_TestSend,dbsqware ./sqwctl_TestSendmail.ksh
  `-pstree -aul 356413
__________________________________________________________________
[..]
Summary of returns:
END_TRT Code:   0 check config dbSQWare and sendmail host=srvdbsqware04 --> 2025-03-03 10:50:45

Job check config dbSQWare and sendmail host=srvdbsqware04 proceeded successfully

Sending mail html by sendmail at dev.env@dbsqware.com

Begining     : 2025-03-03 10:50:45
End          : 2025-03-03 10:50:46
Duration     : 00:00:01

Vous pouvez ensuite suivre le statut du mail dans postfix et dans les logs :

dbsqware@vmsqwarebox:~/dbSQWare/SQWareCentral/tools (SQWareCentral) $ sudo systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
     Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; preset: disabled)
     Active: active (running) since Wed 2025-02-19 08:51:15 CET; 1 week 5 days ago
    Process: 1037 ExecStartPre=/usr/sbin/restorecon -R /var/spool/postfix/pid (code=exited, status=0/SUCCESS)
    Process: 1048 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
    Process: 1184 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
    Process: 1190 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
   Main PID: 1687 (master)
      Tasks: 7 (limit: 23140)
     Memory: 13.8M
        CPU: 24.148s
     CGroup: /system.slice/postfix.service
             ├─  1687 /usr/libexec/postfix/master -w
             ├─  1689 qmgr -l -t unix -u
             ├─ 71212 tlsmgr -l -t unix -u
             ├─306572 pickup -l -t unix -u
             ├─356692 cleanup -z -t unix -u
             ├─356700 trivial-rewrite -n rewrite -t unix -u
             └─356717 smtp -t unix -u

Mar 03 10:20:19 vmsqwarebox postfix/pickup[306572]: 9DC7810D: uid=1000 from=<dbsqware>
Mar 03 10:20:19 vmsqwarebox postfix/cleanup[331772]: 9DC7810D: message-id=<20250303092019.9DC7810D@vmsqwarebox.domain.tld>
Mar 03 10:20:19 vmsqwarebox postfix/qmgr[1689]: 9DC7810D: from=<sender@domain.tld>, size=409, nrcpt=1 (queue active)
Mar 03 10:20:19 vmsqwarebox postfix/smtp[331776]: 9DC7810D: to=<adress@destination.tld>, relay=fqdn.domain.tld[IP.IP.IP.IP]:port, delay=0.31, delays=0.04/0.06/0.17/0.04, dsn=2.0.0, status=sent (250 2.0.0>
Mar 03 10:20:19 vmsqwarebox postfix/qmgr[1689]: 9DC7810D: removed
Mar 03 10:50:46 vmsqwarebox postfix/pickup[306572]: 22828156: uid=1000 from=<dbsqware>
Mar 03 10:50:46 vmsqwarebox postfix/cleanup[356692]: 22828156: message-id=<20250303095046.22828156@vmsqwarebox.domain.tld>
Mar 03 10:50:46 vmsqwarebox postfix/qmgr[1689]: 22828156: from=<sender@domain.tld>, size=13255, nrcpt=1 (queue active)
Mar 03 10:50:46 vmsqwarebox postfix/smtp[356717]: 22828156: to=<adress@destination.tld>, relay=fqdn.domain.tld[IP.IP.IP.IP]:port, delay=0.29, delays=0.04/0.07/0.14/0.04, dsn=2.0.0, status=sent (250 2.0.0>
Mar 03 10:50:46 vmsqwarebox postfix/qmgr[1689]: 22828156: removed

Directement dans la log en cours /var/log/maillog :

cat /var/log/maillog
Mar  3 10:20:19 srvdbsqware04 postfix/pickup[306572]: 9DC7810D: uid=1000 from=<dbsqware>
Mar  3 10:20:19 srvdbsqware04 postfix/cleanup[331772]: 9DC7810D: message-id=<20250303092019.9DC7810D@vmsqwarebox.domain.tld>
Mar  3 10:20:19 srvdbsqware04 postfix/qmgr[1689]: 9DC7810D: from=<sender@domain.tld>, size=409, nrcpt=1 (queue active)
Mar  3 10:20:19 srvdbsqware04 postfix/smtp[331776]: 9DC7810D: to=<adress@destination.tld>, relay=fqdn.domain.tld[IP.IP.IP.IP]:port, delay=0.31, delays=0.04/0.06/0.17/0.04, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4Z5tZW6V7mzywV)
Mar  3 10:20:19 srvdbsqware04 postfix/qmgr[1689]: 9DC7810D: removed
Mar  3 10:50:46 srvdbsqware04 postfix/pickup[306572]: 22828156: uid=1000 from=<dbsqware>
Mar  3 10:50:46 srvdbsqware04 postfix/cleanup[356692]: 22828156: message-id=<20250303095046.22828156@vmsqwarebox.domain.tld>
Mar  3 10:50:46 srvdbsqware04 postfix/qmgr[1689]: 22828156: from=<sender@domain.tld>, size=13255, nrcpt=1 (queue active)
Mar  3 10:50:46 srvdbsqware04 postfix/smtp[356717]: 22828156: to=<adress@destination.tld>, relay=fqdn.domain.tld[IP.IP.IP.IP]:port, delay=0.29, delays=0.04/0.07/0.14/0.04, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4Z5vFf2nKzz116F)
Mar  3 10:50:46 srvdbsqware04 postfix/qmgr[1689]: 22828156: removed


Attention.png
Warning:
En fonction des paramètres SPF de votre domaine de nombreuses options supplémentaires peuvent être nécessaires.


Modification d'une configuration existante

Les modifications et manipulations présentées dans cette section sont à faire avec l'utilisateur root.

On partira du principe que le service Postfix est fonctionnel et que l'envoie de mail fonctionne, ou fonctionnait.

Vérification de la configuration actuelle

Pour vérifier quel est le relayhost configuré sur le serveur :

cat /etc/postfix/main.cf | grep relayhost
# The relayhost parameter specifies the default host to send mail to
# no relayhost is given, mail is routed directly to the destination.
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
relayhost = [fqdn.yourhost.tld]:587

Pour vérifier la configuration sasl sur le serveur :

cat /etc/postfix/main.cf | grep smtp_sasl
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_relay_passwd
smtp_sasl_security_options = noanonymous

Pour vérifier les restrictions sur l'envoi vers et depuis le serveur (peut être absent) :

cat /etc/postfix/main.cf | grep smtpd_sender_restrictions -A3
smtpd_sender_restrictions =
   permit_mynetworks
   permit_sasl_authenticated
   reject_unknown_reverse_client_hostname

Changements sur le relais SMTP

Si vous changez de relais SMTP ou simplement son port vous devrez mettre à jour le fichier /etc/postfix/main.cf :

vi /etc/postfix/main.cf
[..]
# The relayhost parameter specifies the default host to send mail to
# no relayhost is given, mail is routed directly to the destination.
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
relayhost = [newfqdn.yourhost.tld]:port  #ligne à modifier
[..]

Si vous utilisez un relais authentifié vous devrez mettre à jour les informations d'authentification (voir paragraphe suivant).

Changement de compte et, ou de mot de passe

Vous devez identifier le fichier contenant le mot de passe pour l'authentification de chacun de vos serveurs smtp authentifiés :

cat /etc/postfix/main.cf | grep smtp_sasl_password_maps 
smtp_sasl_password_maps = hash:/etc/postfix/sasl_relay_passwd

Vous devez ensuite modifier ce fichier :

vi /etc/postfix/sasl_relay_passwd 
[newfqdn.yourhost.tld]:port newusername:newpassword
~ 

Vous devez signaler à Postifx le changement :

postmap /etc/postfix/sasl_relay_passwd

Actions de maintenance

Envoyer un mail de test

Avec les scripts dbSQWare

dbSQWare envoi les mails aux adresses que vous avez paramétrer avec la variable gvsqw_GlobalMail, pour vérifier :

echo $gvsqw_GlobalMail

Pour tester l'envoie de mail via nos scripts, sur tous les serveurs avec nos scripts dans tools vous avez le script sqw<moteur>_TestSendmail.ksh

# From onedbsqwareuser@anyserver
dbsqware@srvdbsqware:/home/dbsqware (SQWareCentral) $
#
too
total 60
drwxr-x---  2 dbsqware dba  4096 Feb 23 14:51 .
drwxr-x--- 16 dbsqware dba  4096 Feb 23 14:51 ..
-rwxr-x---  1 dbsqware dba  3052 Feb 23 14:51 sqwctl_BackupCustom.ksh
-rwxr-x---  1 dbsqware dba  1784 Feb 23 14:51 sqwctl_DebugFailAsyncFiles.ksh
-rwxr-x---  1 dbsqware dba 17427 Feb 23 14:51 sqwctl_ExportDataCapacity.ksh
-rwxr-x---  1 dbsqware dba 13038 Feb 23 14:51 sqwctl_ExportDataDemo.ksh
lrwxrwxrwx  1 dbsqware dba    40 Jan  2  2022 sqwctl_TestMySQL.ksh -> ../../generic/tools/sqwgen_TestMySQL.ksh
lrwxrwxrwx  1 dbsqware dba    43 Jan  2  2022 sqwctl_TestSendmail.ksh -> ../../generic/tools/sqwgen_TestSendmail.ksh
-rwxr-x---  1 dbsqware dba  6974 Feb 23 14:51 sqwctl_UpdateDemo.ksh


dbsqware@srvdbsqware:/home/dbsqware/dbSQWare/SQWareCentral/tools (SQWareCentral) $
#
./sqwctl_TestSendmail.ksh
Sourcing sqwctl_Global.lib v2025.01 SQWareCentral (dbSQWare) ...


eval global vars:
gvsqw_RsyncDefaultUser="$gvsqw_UserExec@RsyncHost" => gvsqw_RsyncDefaultUser=dbsqware@RsyncHost
Log generated in /home/dbsqware/admin/SQWareCentral/logs/TestSendmail/TestSendmail_20250225_143050_485199.log on srvdbsqware ...

Run check config dbSQWare and sendmail host=srvdbsqware : 2025-02-25 14:30:50

__________________________________________________________________
Program informations
SqwVersion=2025.01 / 2025.01
Copyright 2007-2025, dbSQWare (www.dbsqware.com)
Linux srvdbsqware 5.14.0-503.19.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 19 12:55:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
gvsqw_GenPath=/home/dbsqware/dbSQWare/SQWareCentral/tools
Path=/home/dbsqware/dbSQWare/SQWareCentral/tools
./sqwctl_TestSendmail.ksh
dbsqware@srvdbsqware

sqwctl_TestSend,dbsqware ./sqwctl_TestSendmail.ksh
  `-pstree -aul 485199

__________________________________________________________________



SHELL=/bin/bash

[..résultats omis..]

_=/usr/bin/env

Summary of returns:
END_TRT Code:   0 check config dbSQWare and sendmail host=srvdbsqware --> 2025-02-25 14:30:50

Job check config dbSQWare and sendmail host=srvdbsqware proceeded successfully

Sending mail html by sendmail at <$gvsqw_GlobalMail>

Begining     : 2025-02-25 14:30:50
End          : 2025-02-25 14:30:50
Duration     : 00:00:00

Avec une commande autonome

Selon la configuration de votre serveur vous devrez peut-être installer un paquet avec la commande mail (ou équivalent : email, s-nail, mailx, ...)

1 # From anyuser@anyserver
2 
3 echo "Test email by `whoami` the `date`" | mail -s "Test from `hostname`" nom.prenom@domain.tld

Lister l'état du service

Lors vous vérifié le statu du service Postfix, systemctl affiche également la fin de la log en cours.

 1 dbsqware@srvdbsqware04:/home/dbsqware (SQWareCentral) $
 2 #
 3 systemctl status postfix
 4 ● postfix.service - Postfix Mail Transport Agent
 5      Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; preset: disabled)
 6      Active: active (running) since Thu 2025-01-30 08:58:29 CET; 1h 43min ago
 7     Process: 1217216 ExecStartPre=/usr/sbin/restorecon -R /var/spool/postfix/pid (code=exited, status=0/SUCCESS)
 8     Process: 1217217 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
 9     Process: 1217219 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
10     Process: 1217220 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
11    Main PID: 1217289 (master)
12       Tasks: 4 (limit: 23156)
13      Memory: 4.8M
14         CPU: 1.105s
15      CGroup: /system.slice/postfix.service
16              ├─1217289 /usr/libexec/postfix/master -w
17              ├─1217291 qmgr -l -t unix -u
18              ├─1217418 tlsmgr -l -t unix -u
19              └─1291514 pickup -l -t unix -u
20 
21 Jan 30 08:59:09 srvdbsqware04 postfix/pickup[1217290]: 2DD6110F: uid=1000 from=<dbsqware>
22 Jan 30 08:59:09 srvdbsqware04 postfix/cleanup[1217415]: 2DD6110F: message-id=<20250130075909.2DD6110F@srvdbsqware04.dbsqware.local>
23 Jan 30 08:59:09 srvdbsqware04 postfix/qmgr[1217291]: 2DD6110F: from=<sender@dbsqware.org>, size=415, nrcpt=1 (queue active)
24 Jan 30 08:59:09 srvdbsqware04 postfix/smtp[1217417]: 2DD6110F: to=<nom.prenom@dbsqware.com>, relay=smtp.pro-smtp.fr[217.171.20.70]:587, delay=0.55, delays=0.04/0.08/0.17/0.27, dsn=2.0.0, status=sent (25>
25 Jan 30 08:59:09 srvdbsqware04 postfix/qmgr[1217291]: 2DD6110F: removed
26 Jan 30 09:05:17 srvdbsqware04 postfix/pickup[1217290]: 28E9A10F: uid=1000 from=<dbsqware>
27 Jan 30 09:05:17 srvdbsqware04 postfix/cleanup[1218206]: 28E9A10F: message-id=<20250130080517.28E9A10F@srvdbsqware04.dbsqware.local>
28 Jan 30 09:05:17 srvdbsqware04 postfix/qmgr[1217291]: 28E9A10F: from=<sender@dbsqware.org>, size=409, nrcpt=1 (queue active)
29 Jan 30 09:05:17 srvdbsqware04 postfix/smtp[1218208]: 28E9A10F: to=<toarandom@here.fr>, relay=smtp.pro-smtp.fr[217.171.20.70]:587, delay=0.71, delays=0.06/0.06/0.28/0.32, dsn=2.0.0, status=sent (250 2.0.>
30 Jan 30 09:05:17 srvdbsqware04 postfix/qmgr[1217291]: 28E9A10F: removed
31 lines 1-27/27 (END)

Logs en tant réel

Les logs de Postfix sont situés dans /var/log/maillog

Lors de vos manipulations pour voir la log en temps réel dans une autre fenêtre :

1 # From : dbsqware@sqwarebox
2 sudo tail -f /var/log/maillog
3 
4 # From : root@anyserver
5 tail -f /var/log/maillog

Gestion de la file d'attente

WIP

Purger toute les files d'attentes

1 # From : dbsqware@sqwarebox
2 sudo postsuper -d ALL
3 
4 # From : root@anyserver
5 postsuper -d ALL

Purger la file d'attente defered postfix

Pendant que vous mettez en place la configuration si vous envoyez des mails de tests et qu'il ne partent pas vous allez remplir la file d'attente "defered".
Pensez à la vider sinon lorsque la configuration sera fonctionnelle tous ces mails de tests vont partir d'un coup.

1 # From : dbsqware@sqwarebox
2 sudo postsuper -d ALL defered
3 
4 # From : root@anyserver
5 postsuper -d ALL defered

Recharger ou redémarrer Postfix

Recharger la configuration de Postfix.

1 # From : dbsqware@sqwarebox
2 sudo systemctl reload postfix
3 
4 # From : root@anyserver
5 systemctl reload postfix

Redémarrer le service Postfix.

1 # From : dbsqware@sqwarebox
2 sudo systemctl restart postfix
3 
4 # From : root@anyserver
5 systemctl restart postfix