<?xml version="1.0" encoding="utf-8"?>
<!-- 26 pour etre apres 25_sympa.xml -->
<creole>

    <files>
        <!-- configuration de ssmtp pour le mode conteneur -->
        <file name='/etc/ssmtp/ssmtp.conf' instance_mode='when_container'/>
        <file name='/etc/mailname'/>
        <!-- FIXME: liste à diviser avec d'autres ? -->
        <file name='/etc/bareos/bareosfichiers.d/mail.conf' source='bareos-mail.conf' filelist='exim-bareos'/>
        <file name='/etc/rsyslog.d/eole-traps/exim.conf' source='rsyslog_traps_exim.conf'/>
    </files>

    <containers>
        <all>
            <file name='/etc/ssmtp/ssmtp.conf' mkdir='True' instance_mode='when_container' />
            <file name='/etc/mailname' instance_mode='when_container' />
        </all>

        <container name='mail' id='13'>
            <package>eole-exim-pkg</package>
            <!-- installation de eole-antivirus-pkg déplacée dans eole-antivirus #8702 & #9213 -->
            <!-- <package>eole-antivirus-pkg</package>-->
            <!-- <service servicelist='clamav_mail'>clamav-daemon</service> -->
            <service>exim4</service>
            <service_access service='exim4'>
                <port service_accesslist='smtp'>25</port>
                <port service_accesslist='smtp'>587</port>
                <port service_accesslist='smtp'>465</port>
            </service_access>
            <file name='/etc/exim4/eole.d/exim-vars.conf' filelist='exim' />
            <file name='/etc/exim4/eole.d/transport/smtp.conf' filelist='exim'/>
            <file name='/etc/exim4/eole.d/rewrite.conf' source='exim-rewrite.conf' filelist='exim' />
            <file name='/etc/exim4/eole.d/acl/conditional_deny.conf' source='exim_acl_conditional_deny.conf' filelist='exim' />
            <file name='/etc/exim4/eole.d/senders_whitelist' source='exim_senders_whitelist' filelist='exim' />
            <!-- clamav : génère même si pas activé pour le mode non conteneur-->
            <file filelist='clamav_mail' name='/etc/clamav/clamd.conf'/>
            <file name='/etc/systemd/system/exim4.service.d/override.conf' source='exim4.override.container' mkdir='True' rm='True' instance_mode='when_container'/>
            <fstab name='/home/mail'/>
        </container>
    </containers>

    <variables>

        <!-- il faut laisser le hidden == True si antivirus n'est pas installé-->
        <family name='clamav' hidden='True'>
            <variable name='exim_clamav' type='oui/non' description="Activer l'anti-virus sur la messagerie">
                <value>non</value>
            </variable>
        </family>

        <family name='messagerie' icon='envelope'>

            <variable name='adresse_ip_mail' type='ip' description="Adresse IP du serveur de mail local" />
            <!-- configuration du SMTP local non experte -->
            <variable name='domaine_messagerie_etab' type='domain' mandatory='True' description="Nom de domaine de la messagerie de l'établissement (ex : monetab.ac-aca.fr)" mode='basic'/>
            <variable name='system_mail_from' type='mail' description="Adresse électronique d'envoi pour le compte root"/>
            <variable name='system_mail_from_for_headers' type='oui/non' mode='expert'
                      description="Écraser les entêtes 'From:', 'Reply-To:' et 'Sender:' du message">
                <value>non</value>
            </variable>

            <variable name='system_mail_to' type='mail' description="Adresse électronique recevant les courriers électroniques à destination du compte root" mode='basic'/>
            <variable name='system_mail_to_for_headers' type='oui/non' mode='expert'
                      description="Écraser les entêtes 'To:', 'Cc:' et 'Bcc:' du message">
                <value>non</value>
            </variable>

            <!-- Comptes locaux (ex smarthost) -->
            <variable name='exim_smarthost' type='oui/non' description="Gérer la distribution locale" mode='expert'>
                <value>non</value>
            </variable>
            <variable name='exim_ldap_delivery' type='oui/non' description="Gérer la distribution pour les comptes LDAP" mode='expert'>
                <value>non</value>
            </variable>
            <variable name='exim_quota' type='number' description="Quota des boîtes aux lettres en Mo">
                <value>20</value>
            </variable>
            <variable name='exim_quota_warn' type='number' mode='expert' description="Pourcentage d’utilisation des boîtes entraînant un warning">
                <value>80</value>
            </variable>
            <variable name='exim_message_size_limit' type='number' description="Taille maximale d'un message à envoyer en Mo">
                <value>10</value>
            </variable>
            <variable name='exim_ignore_bounce_errors_after' type='number' description="Nombre de jours avant de rejeter les messages non distribués" mode="expert">
                <value>21</value>
            </variable>
            <variable name='exim_spam_score' type='number' description="Seuil de détection d'un spam (multiplié par 10)" mode='expert'>
                <value>50</value>
            </variable>

            <variable name='exim_use_tls' type='oui/non' description="Activer le TLS pour les clients" mode='expert'>
                <value>oui</value>
            </variable>

            <!-- Passerelle SMTP -->
            <variable name='activer_exim_relay_smtp' type='oui/non' description="Router les courriels par une passerelle SMTP" mode="basic">
                <value>oui</value>
            </variable>
            <variable name='exim_relay_smtp' type='domain' description="Passerelle SMTP" mandatory='True'/>
            <variable name='tls_smtp' type='string' description="Utilisation du TLS (SSL) par la passerelle SMTP">
                <value>non</value>
            </variable>
            <variable name='tls_smtp_not_disabled' type='string' description="Copie de tls_smtp mais pas désactivé"/>
            <variable name='exim_relay_port' type='number' description="Port de la passerelle SMTP"/>
            <variable name='exim_relay_authentication' type='oui/non' description='La passerelle requiert une authentification'>
                <value>non</value>
            </variable>
            <variable name='exim_relay_auth_method' type='string' description='Méthode d’authentification auprès de la passerelle' mode='expert' mandatory="True">
                <value>login</value>
            </variable>
            <variable name='exim_relay_auth_user' type='string' description='Identifiant d’authentification' mandatory="True"/>
            <variable name='exim_relay_auth_password' type='password' description='Mot de passe d’authentification' mandatory="True"/>

            <!-- Relayage des messages (ex mailhub) -->
            <variable name='exim_relay' type='oui/non' description="Activer le relai des messages" mode='expert'>
                <value>non</value>
            </variable>

            <!-- Must be redefine to mode='normal' where DHCP is “normal” -->
            <variable name='exim_relay_dhcp' type='oui/non' mode='expert' description="Relayer les courriers électroniques pour toutes les plages définies dans le DHCP">
                <value>non</value>
            </variable>

            <variable name='exim_relay_cidrv4' type='string' multi='True' mode='expert' description="Relayer les courriers électroniques pour des plages d’adresses IPv4"/>

             <!-- Not yet managed -->
            <variable name='exim_relay_cidrv6' type='string' multi='True' mode='expert' hidden='True' description="Relayer les courriers électroniques pour des plages d’adresses IPv6"/>
             <!-- End not yet managed -->

            <variable name='exim_relay_domains' type='string' mode='expert' multi='True' description="Relayer les courriers électroniques pour des nom de domaines"/>

            <!-- Must be redefined only on Seshat to unhide it -->
            <variable name='exim_relay_manual_routes' type='oui/non' mode='expert' hidden='True' description="Activer le relai avec des routes manuelles (EAD)">
                <value>non</value>
            </variable>

            <variable name='test_smtp_access' type='oui/non' description="Vérifie si les ports SMTP doivent être accessibles depuis l'extérieur"/>

            <!-- configuration experte -->
            <variable name='exim_primary_hostname' type='string' mode='expert' description="FQDN utilisé par Exim">
                <value>automatique</value>
            </variable>

            <variable name='exim_qualify_domain' type='domain_strict' mode='expert' description="Domaine utilisé pour qualifier les adresses">
                <value>nom de domaine local</value>
            </variable>

            <variable name='exim_use_syslog' type='oui/non' mode='expert' description='Envoyer les logs par rsyslog'>
                <value>oui</value>
            </variable>

            <variable name='exim_use_log_files' type='oui/non' mode='expert' description='Dupliquer les logs dans des fichiers'>
                <value>non</value>
            </variable>

            <variable name='exim_address_rewrite' type='oui/non' mode='expert' description="Activer les règles de réécriture étendue">
                <value>non</value>
            </variable>

            <variable name='exim_address_rewrite_pattern' type='string' mode='expert' multi='True' description='Schéma de réécriture' />

            <variable name='exim_address_rewrite_replacement' type='string' mode='expert' description='Remplacement de réécriture' />

            <variable name='exim_address_rewrite_flags' type='string' mode='expert' description='Drapeau de réécriture' />
            <variable name='exim_acl_condition_on_flag' type='oui/non' mode='expert' description='Conditionner la coupure du service de courriels'>
                <value>non</value>
            </variable>
            <variable name='exim_acl_conditional_flag' type='string' mode='expert' description='Drapeau' mandatory='True' multi='True'/>
            <variable name='exim_acl_conditional_group' type='string' mode='expert' description='Groupe ciblé' />

        </family>

        <separators>
            <separator name='domaine_messagerie_etab'>Serveur d'envoi/réception (SMTP)</separator>
            <separator name='activer_exim_relay_smtp'>Relai des messages</separator>
            <separator name='exim_primary_hostname'>Configuration experte</separator>
            <separator name='exim_acl_condition_on_flag'>Système de drapeaux et de filtres conditionnant la coupure du service</separator>
        </separators>

    </variables>

    <constraints>

        <fill name='auto_copy_val' target='domaine_messagerie_etab'>
            <param type='eole'>nom_domaine_local</param>
        </fill>
        <fill name='calc_smtp_port' target='exim_relay_port'>
            <param type='eole' hidden="False">tls_smtp</param>
        </fill>
        <auto name="calc_val_first_value" target="tls_smtp_not_disabled">
            <param type='eole' hidden="False">tls_smtp</param>
            <param>non</param>
        </auto>
        <condition name='frozen_if_not_in' source="tls_smtp_not_disabled">
            <param>port personnalisé</param>
            <target type='variable'>exim_relay_port</target>
        </condition>

        <auto name='calc_multi_condition' target='adresse_ip_mail'>
            <param>oui</param>
            <param type='eole' name='condition_1'>mode_conteneur_actif</param>
            <param type='eole' name='match'>container_ip_mail</param>
            <param type='eole' name='mismatch'>adresse_ip_eth0</param>
            <param name='default_mismatch'>None</param>
        </auto>

        <auto name='calc_multi_condition' target='test_smtp_access'>
            <param>oui</param>
            <param name="operator">OR</param>
            <param type='eole' name='condition_1'>exim_smarthost</param>
            <param type='eole' name='condition_2'>exim_relay</param>
        </auto>

        <check name='valid_enum' target='tls_smtp'>
            <param>['non', 'port 25', 'port 465', 'port 587', 'port personnalisé']</param>
        </check>

        <condition name='disabled_if_in' source='exim_smarthost'>
            <param>non</param>
            <target type='variable' optional='True'>activer_sympa</target>
            <target type='variable'>exim_quota</target>
            <target type='variable'>exim_quota_warn</target>
            <target type='variable'>exim_ldap_delivery</target>
        </condition>

        <condition name='disabled_if_in' source='activer_client_ldap' fallback='True'>
            <param>non</param>
            <target type='variable'>exim_ldap_delivery</target>
        </condition>

        <condition name='disabled_if_in' source='activer_exim_relay_smtp'>
            <param>non</param>
            <target type='variable'>exim_relay_smtp</target>
            <target type='variable'>exim_relay_port</target>
            <target type='variable'>exim_relay_authentication</target>
            <target type='variable'>tls_smtp</target>
        </condition>

        <check name='valid_enum' target='exim_primary_hostname'>
            <param>[ 'automatique', 'nom_machine.domaine_messagerie_etab', 'nom_machine.nom_domaine_local']</param>
            <param name='checkval'>False</param>
        </check>

        <check name='valid_enum' target='exim_qualify_domain'>
            <param>[ 'nom de domaine local', 'domaine privé de messagerie établissement', 'domaine public de messagerie établissement']</param>
        </check>

        <condition name='disabled_if_in' source='exim_relay_authentication'>
            <param>non</param>
            <target type='variable'>exim_relay_auth_method</target>
            <target type='variable'>exim_relay_auth_user</target>
            <target type='variable'>exim_relay_auth_password</target>
        </condition>

        <check name='valid_enum' target='exim_relay_auth_method'>
            <param>['cram-md5','login','plain']</param>
        </check>

        <condition name='disabled_if_in' source='exim_address_rewrite'>
            <param>non</param>
            <target type='variable'>exim_address_rewrite_pattern</target>
            <target type='variable'>exim_address_rewrite_replacement</target>
            <target type='variable'>exim_address_rewrite_flags</target>
        </condition>

        <check name='valid_regexp' target='exim_address_rewrite_flags'>
            <param>^[EFTbcfhrstSQqRw\s]*$</param>
            <param name='err_msg'>Les flags doivent être une série des caractères suivants: EFTbcfhrst S QqRw</param>
        </check>

        <group master='exim_address_rewrite_pattern'>
            <slave>exim_address_rewrite_replacement</slave>
            <slave>exim_address_rewrite_flags</slave>
        </group>

        <condition name='disabled_if_in' source='activer_dhcp' fallback='True'>
            <param>non</param>
            <target type="variable">exim_relay_dhcp</target>
        </condition>

        <condition name='disabled_if_in' source='exim_clamav'>
            <param>oui</param>
            <target type="variable" optional="True">clam_scan_mail</target>
        </condition>

        <condition name='disabled_if_in' source='exim_relay'>
            <param>non</param>
            <target type='variable'>exim_relay_dhcp</target>
            <target type='variable'>exim_relay_cidrv4</target>
            <!-- Not yet managed
            <target type='variable'>exim_relay_cidrv6</target>
            -->
            <target type='variable'>exim_relay_domains</target>
            <!-- Must be redefined only on Seshat to unhide it
            <target type='variable'>exim_relay_manual_routes</target>
            -->
        </condition>

        <condition name='disabled_if_in' source='test_smtp_access'>
            <param>non</param>
            <target type='service_accesslist'>smtp</target>
        </condition>

        <condition name='disabled_if_in' source='exim_use_syslog'>
            <param>non</param>
            <target type='variable'>exim_use_log_files</target>
        </condition>

        <check name='valid_entier' target='exim_quota'>
            <param name="mini">0</param>
        </check>

        <check name='valid_entier' target='exim_quota_warn'>
            <param name="mini">0</param>
        </check>

        <condition name='disabled_if_in' source='activer_spamassassin' fallback='True'>
            <param>non</param>
            <target type='variable'>exim_spam_score</target>
        </condition>

        <!-- antivirus sur SMTP -->
        <condition name='disabled_if_in' source='activer_clam' fallback='True'>
            <param>non</param>
            <target type='servicelist'>clamav_mail</target>
            <target type='filelist'>clamav_mail</target>
            <target type='variable'>exim_clamav</target>
        </condition>
        <condition name='disabled_if_in' source='exim_clamav'>
            <param>non</param>
            <target type='servicelist'>clamav_mail</target>
            <target type='filelist'>clamav_mail</target>
        </condition>

        <!-- gestion présence bareos -->
        <condition name='disabled_if_in' source='activer_bareos_dir' fallback='True'>
            <param>non</param>
            <target type='filelist'>exim-bareos</target>
        </condition>

        <group master='exim_acl_conditional_flag'>
            <slave>exim_acl_conditional_group</slave>
        </group>
        <condition name='disabled_if_in' source='exim_acl_condition_on_flag'>
            <param>non</param>
            <target type='variable'>exim_acl_conditional_flag</target>
            <target type='variable'>exim_acl_conditional_group</target>
        </condition>
        <condition name='disabled_if_in' source='activer_client_ldap' fallback='True'>
            <param>non</param>
            <target type='variable'>exim_acl_conditional_group</target>
        </condition>

    </constraints>

    <help>


        <variable name='exim_clamav'>
            Gestion de l'antivirus sur la messagerie
        </variable>
        <!--
        <family name='messagerie'>
            Paramétrage du serveur de messagerie (MTA) Exim :
            - Utilisation d’un relai ou envoi direct sur Internet ;
            - Paramétrage du domaine de messagerie suivant le modèle Exim ;
            - Paramétrage des réécritures d’adresses ;
            - Paramétrage des logs Exim ;
            - Paramétrage du relai des courriers électroniques ;
            - Paramétrage d’activation de SpamAssassin ;
            - Paramétrage d’activation de Sympa.
        </family>
         -->
        <family name='messagerie'>
            Paramétrage du serveur de messagerie
        </family>

        <variable name="domaine_messagerie_etab">
            Nom de domaine de la messagerie de l’établissement, un domaine
            privé est automatiquement créé avec le préfixe « i- » si "exim_mail_type" est à "satellite".
        </variable>

        <variable name='activer_exim_relay_smtp'>
            Activer l’utilisation d’une passerelle SMTP pour l’envoi
            des courriers électroniques vers l’extérieurs. Si cette option est
            désactivée, le réseau doit autoriser le protocole SMTP
            depuis ce serveur vers Internet.
        </variable>

        <variable name='exim_relay_smtp'>
            Passerelle SMTP utilisée pour l’envoi des courriers électroniques vers
            l’extérieur. Le protocole SMTP doit être autorisé entre
            le serveur local et cette passerelle.
        </variable>

        <variable name='tls_smtp'>
            Si la passerelle SMTP accepte le TLS, choisir le port en
            fonction du support de la commande STARTTLS (port 25) ou
            non (port 465)
        </variable>

        <variable name='system_mail_from'>
            Adresse utilisée comme expéditeur des courriers électroniques de l'utilisateur root
        </variable>

        <variable name='system_mail_to'>
            Adresse utilisée pour la réception des courriers électroniques à l'attention de l'utilisateur root
        </variable>


        <variable name='exim_smarthost'>
            Gestion d’un domaine local et d’un domaine privé (préfixe "i-")
        </variable>

        <variable name='exim_use_tls'>
            Activer le support du TLS pour les sessions SMTP.
            Le serveur de courrier supportera alors STARTTLS sur le port 25 et écoutera en TLS sur le port 465 pour les clients qui le supportent.
            Passer cette variable à non rend l'authentification SMTP impossible ce qui empêche les utilisateurs d'envoyer des messages.
        </variable>

        <variable name='exim_primary_hostname'>
            Nom de domaine complètement qualifié utilisé par Exim dans
            le protocole SMTP. C'est utile pour les
            vérifications anti-spam des MX externes.
            Les valeurs possibles sont :
            - automatique : laisser Exim décider ;
            - nom_machine.domaine_messagerie_etab : utiliser le
              nom de la machine complété par le nom de domaine de la
              messagerie établissement ;
            - nom_machine.nom_domaine_local : utiliser le
              nom de la machine complété par le nom de domaine local.
        </variable>

        <variable name="exim_qualify_domain">
            Nom de domaine ajouté aux adresses :
            - non qualifiées (sans @DOMAIN) ;
            - qualifié avec un nom de machine sans domaine (@NOM_MACHINE).
            Les valeurs configurables sont :
            - nom de domaine local : correspond à « %%nom_domain_local » ;
            - domaine privé de messagerie établissement : correspond à « i-%%domaine_messagerie_etab » ;
            - domaine public de messagerie établissement : correspond à « %%domaine_messagerie_etab ».
            Si « %%domaine_messagerie_etab » est vide, « %%nom_domain_local » est utilisé.
        </variable>

        <variable name='exim_address_rewrite'>Permettre de définir des règles de réécriture personnalisées. Si non, seuls les courriers électroniques en 'localhost' sont réécris avec le 'nom_domain_local'. Voir http://exim.org/exim-html-current/doc/html/spec_html/ch31.html.</variable>

        <variable name='exim_address_rewrite_pattern'>
            Modèle de correspondance des adresses courriers électroniques à réécrire.
            http://exim.org/exim-html-current/doc/html/spec_html/ch31.html#SECID151
        </variable>

        <variable name='exim_address_rewrite_replacement'>
            Valeur de remplacement des adresses électroniques.
            http://exim.org/exim-html-current/doc/html/spec_html/ch31.html#SECID152
        </variable>

        <variable name='exim_address_rewrite_flags'>
            Drapeau contrôlant la réécriture des adresses électroniques.
            Voir http://exim.org/exim-html-current/doc/html/spec_html/ch31.html#SECID153
        </variable>

        <variable name='exim_use_syslog'>
            Activer l’envoi des logs par rsyslog.
        </variable>

        <variable name='exim_use_log_files'>
            Dupliquer les logs dans des fichiers gérés directement par
            Exim.
            Si vous envoyez les logs par rsyslog, vous pouvez conserver la
            gestion des fichiers traditionnelles d’Exim.
            Ces fichiers étant gérés directement par Exim, ils se
            trouveront dans le conteneurs du service.
        </variable>

        <variable name="exim_relay_dhcp">
            Activer le relai des courriers électroniques pour les plages d’adresses
            définies dans la configuration DHCP.
            Si toutes les plages d’adresses ne sont pas autoriser à
            utiliser ce serveur comme relai de messagerie, vous devez
            spécifier « non » et activer le relai manuel.
        </variable>

        <variable name="exim_relay">
            Activer la configuration manuelle du relai des courriers électroniques.
            Cette variable permet d’activer :
            - Les listes d’adresses IP autorisées à utiliser ce serveur comme relai de messagerie.
            - La liste des noms de domaines autorisées à être relayés par ce serveur.
            Si vous n’êtes pas sûr, mettre la valeur « non ».
        </variable>

        <variable name="exim_relay_cidrv4">
            Liste des adresses IPv4 autorisées à utiliser ce serveur comme
            relai de messagerie.
            Les adresses doivent être spécifiés en notation CIDR.
        </variable>

        <variable name="exim_relay_cidrv6">
            Liste des adresses IPv6 autorisées à utiliser ce serveur comme
            relai de messagerie.
            Les adresses doivent être spécifiés en notation CIDR.
            À l’heure actuelle, ce paramètre n’ayant aucun effet il est caché.
        </variable>

        <variable name="exim_relay_domains">
            Liste des noms de domaines autorisées à être relayés par ce
            serveur.
            Ce paramètre est utilisé pour des MX secondaires ou un frontal
            à plusieurs domaines de messagerie.
            La syntaxe autorise le joker « * » et bien plus encore
            (http://exim.org/exim-html-current/doc/html/spec_html/ch10.html#SECTdomainlist)
            Si vous n’êtes pas sûr, laissez vide.
        </variable>

        <variable name='exim_relay_manual_routes'>
            Activation du routage manuel des messages en utilisant la
            liste de correspondance « domaine: passerelle SMTP »
            définie dans l’EAD.
        </variable>

        <variable name="exim_quota">
            Taille par défaut, en Mo, des boîtes aux lettres.
        </variable>
         <variable name="exim_message_size_limit">
            Taille maximale, en Mo, des messages à envoyer. Elle ne peut être supérieure à "php_upload_max_filesize".
        </variable>

        <variable name="exim_quota_warn">
            Limite d’utilisation, en pourcent, d’une boîte aux lettres entraînant
            l’envoi d’un message d’alerte.
        </variable>
        <variable name='exim_spam_score'>
            Seuil à partir duquel un courrier électronique est considéré
            comme spam. Le seuil fourni par SpamAssassin est multiplié
            par 10 afin de faire des comparaisons sur des entiers.
        </variable>
        <variable name='exim_acl_condition_on_flag'>Système de drapeaux et de filtres conditionnant la coupure du service</variable>
        <variable name='exim_acl_conditional_flag'>Nom du drapeau (fichier) dont la présence signifiera la coupure du service de courriel. Le fichier est créé dans le répertoire volatile /run/eole/flags. Un filtre facultatif sur le groupe de l’émetteur peut restreindre la portée de la coupure.</variable>
        <variable name='exim_acl_conditional_group'>Groupe facultatif pour restreindre la coupure aux utilisateurs membres.</variable>
    </help>

</creole>
<!-- vim: ts=4 sw=4 expandtab
-->
