Cette page décrit le principe de l'installation du logiciel SendMail sur un serveur Ubuntu afin d'envoyer des messages électroniques en provenance de SynerGaïa.
Elle n'est pas garantie mais décrit une installation effectivement réalisée sous Ubuntu 22.04.
Le logiciel Sendmail est le produit standard proposé pour cet objectif.
Prérequis
Il n'est pas nécessaire d'installer un logiciel de messagerie si vous ne comptez pas utiliser l'objet @Memo pour l'envoi de mail.
Par ailleurs, vous pouvez vérifier si Sendmail est installé en exécutant la commande Outils > Logiciel > A propos qui vous donnera le détail de ce qui est ou n'est pas installé.
Installation
1. Mettez votre système à jour :
Ouvrez une fenêtre terminal et copiez :
sudo apt update && sudo apt upgrade -y
2. Installation du logiciel sendmail
Dans la fenêtre terminal, copiez :
sudo apt install -y sendmail sendmail-cf mailutils
sudo sendmailconfig
3. mise à jour du fichier hosts :
Il faut modifier les fichiers /etc/hosts et /etc/hostname pour ne pas avoir un délai de plusieurs dizaines de secondes à l'envoi.
En effet, il faut que votre serveur soit associé à un nom de domaine.
Dans le fichier /etc/hosts vous devriez avoir au début une ligne (avec les bonnes valeurs bien sûr !)
127.0.1.1 votre.nomde.domaine nomserveur
4. mettre à jour le fichier de configuration
Dans une fenêtre terminal taper la commande (vérifiez que votre fichier hosts est bien celui-là) :
sudo nano /etc/mail/sendmail.mc
et assurez-vous que les lignes (remplacez par le nom de votre serveur smtp !):
define(`SMART_HOST', `your.smtp.server')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl
sont présentes.
configuration :
Si votre serveur smtp demande une authentification, ajouter un fichier /etc/mail/authinfo contenant la ligne :
AuthInfo:your.smtp.server "U:your_username" "P:your_password" "M:PLAIN"
où vous aurez remplacé par vos propres valeurs de serveur stmp, identifiant et mot de passe.
Une fois cela fait, vous regénérez la configuration de Sendmail avec les commandes :
sudo make -C /etc/mail
sudo /etc/init.d/sendmail reload
5. mise à jour du fichier php.ini
Ne pas oublier de mettre à jour le php.ini (/etc/php8/apache2/php.ini)
- sendmail_path = /usr/sbin/sendmail -t -i -ODeliveryMode=background
qui permet l'envoi des mails en tâche de fond (sinon l'application attend une minute la réponse)
- variable SMTP= adresse ip du smtp externe
- port choisi (25 ou 993)
6. redémarrez Apache :
sudo service apache2 restart
7. faire démarrer le service sendmail au démarrage automatiquement
sudo systemctl enable sendmail.service
démarrer manuellement le service :
sudo systemctl start sendmail.service
Connexion avec SynerGaia
Paramétrage dans SynerGaia
Tests
Dans SynerGaia, c'est l'objet @Memo qui permet d'utiliser le service d'envoi de mail. L'adresse de l'émetteur est toujours celui de l'utilisateur en trai d'utiliser l'objet @Memo.
Il faut donc veiller à ce que les utilisateurs aient bien une adresse mail décrite dans leur document.
Si vous avez bien associé une adresse email dans votre fiche utilisateur, vous pouvez exécuter la formule (dans la fenêtre de formule) :
@Memo.@AjouterDestinataire(@Moi).@DefinirObjet("TEST").@DefinirContenu("Bonjour ! Ce message a été envoyé de SynerGaïa").@Envoyer
Exemples
Problèmes et erreurs
Pour s'aider dans la résolution des problèmes, il faut visiter les fichiers de log et d'erreur.
Ils sont en général placés dans /var/log/mail.log et /var/log/mail.err.
Le temps d'envoi est de plusieurs secondes
En général, cela provient de ce que Sendmail ne trouve pas le nom de domaine du serveur. Il faut pour cela compléter le fichiers hosts d'Apache.
Le test semble positif mais on ne reçoit pas de message