Commit d16db69e authored by Thibaut Vallee's avatar Thibaut Vallee
Browse files

branch 7.3.x autorisant d'autre port que le 465 pour l'authentification

parent 31e5cf8f
Loading
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
7.3.0
----
- configuration permettant d'utiliser d'autre port que 465 pour s'authentifier (car du port 587 qui requiére du START_TLS)
['unicaen-mail']['connection_config']['use_auth'] par défaut à false. S'il est a true, on utilise les paramétres d'authentification ['unicaen-mail']['connection_config']['username'] et ['unicaen-mail']['connection_config']['password']
- A revoir : est-ce que l'on peux merger la config 'tls' (et 'auto_tls')

- [Bug-fix] : datatable de la page d'index qui ne se reinitialisait pas
- Mise en erreurs des mails lors de la capture d'une exception

7.2.13
----
- Ajout d'une configuration optionnelle ['unicaen-mail']['connection_config']['auto_tls'] par défaut à false
Problème a revoir, permet de gerer des cas ou l'on n'utilise pas du TLS mais que le mailer détecter automatiquement (sans doute via la conf du serveur SMTP) qu'il en faudrait rendant le parametre auto_tls à true ce qui ignorerai la configuration tls=false


7.2.10
----
- Uniformisation du filtre
+9 −0
Original line number Diff line number Diff line
@@ -98,6 +98,15 @@ return [
        'transport_options' => [
            'host' => 'smtp.XXXX.fr',
            'port' => 25,
            /** pour le cas du port 25 = pas d'authentification */
            'tls' => false, 
            'use_auth' => false, 
            // 'auto_tls' => false si nécessaire pour gerer des cas ou l'on souhaite forcer à ne pas utiliser le protocole TLS mais que le protocole TLS est automatiquement détecté
            /** Cas d'une authentification (port 465 pour du TLS, 587 pour du START_TLS ...) */
            //'tls' => true, 
            //'use_auth' => true, 
            //'username' => 'XXX',
            //'password' => 'YYY',
        ],
        /**
         * Adresses des redirection si do_not_send est à true
+21 −3
Original line number Diff line number Diff line
@@ -312,8 +312,14 @@ EOS;
                        $mailSymfony = $this->prepareMessageForRedirection($mailSymfony, $module);
                    }
                    $this->getMailer()->send($mailSymfony);
                } catch (TransportExceptionInterface $e) {
                    throw new RuntimeException("Échec de l'envoi du message", 0, $e);
                } catch (Exception $e) {
                    try{
                        $mail->setStatusEnvoi(Mail::FAILED);
                        $mail->setLog($e->getMessage());
                        $this->update($mail);
                    }
                    catch (Exception){}
                    throw new RuntimeException($e->getMessage(), 0, $e);
                }

                $mail->setStatusEnvoi(Mail::SUCCESS);
@@ -323,6 +329,12 @@ EOS;

            $this->update($mail);
        } catch (Exception $e) {
            try{
                $mail->setStatusEnvoi(Mail::FAILED);
                $mail->setLog($e->getMessage());
                $this->update($mail);
            }
            catch (Exception){}
            Throw new Exception($e->getMessage());
        }
        return $mail;
@@ -344,7 +356,13 @@ EOS;
        try {
            $this->getMailer()->send($mail);
        } catch (TransportExceptionInterface $e) {
            throw new RuntimeException("Échec de l'envoi du message", 0, $e);
            try{
                $mail->setStatusEnvoi(Mail::FAILED);
                $mail->setLog($e->getMessage());
                $this->update($mail);
            }
            catch (Exception){}
            throw new RuntimeException($e->getMessage(), 0, $e);
        }
    }

+11 −8
Original line number Diff line number Diff line
@@ -23,9 +23,19 @@ class MailServiceFactory {
        $config = $container->get('Configuration')['unicaen-mail'];
        $host  = ($config['transport_options']['host']) ?? null;
        $port  = ($config['transport_options']['port']) ?? null;

        //TODO : a voir si l'on garde tls a true par défaut et si l'on peut merger avec use_auth
        //Gestion de cas ou l'auto_tls s'active pour une raison a déterminer, ce qui skip le paramétre tls=true. TODO : a revoir
        $tls = ($config['transport_options']['tls']) ?? true;
        $auto_tls = ($config['transport_options']['auto_tls']) ?? null;
        if(isset($auto_tls)){
            $transport->setAutoTLS($auto_tls);
        }
        $transport = new EsmtpTransport(host: $host, port: $port, tls: $tls);
        if($port==465){

        $useAuth =  ($config['transport_options']['connection_config']['use_auth']) ?? false;

        if($useAuth){
            $username = ($config['transport_options']['connection_config']['username']) ?? null;
            $password = ($config['transport_options']['connection_config']['password']) ?? null;
            if(!isset($username) || !isset($password)){
@@ -35,13 +45,6 @@ class MailServiceFactory {
            $transport->setPassword($password);
        }

        //Gestion de cas ou l'auto_tls s'active pour une raison a déterminer, ce qui skip le paramétre tls=true
        $auto_tls = ($config['transport_options']['auto_tls']) ?? null;
        if(isset($auto_tls)){
            $transport->setAutoTLS($auto_tls);
        }


        $mailer = new Mailer($transport);

        /**
+16 −12
Original line number Diff line number Diff line
@@ -133,9 +133,12 @@ if (!isset($options['droits']) OR !isset($options['droits']['supprimer'])) {

<script>
    $(function () {
        if (jQuery().dataTable) {
            $('table#mails-liste').DataTable({
                paging: false,
                autoWidth: false,
                stateSave: true,
                retrieve: true,
                // order: [[1, 'asc']],
                columnDefs: [{
                    "targets": 5,
@@ -145,5 +148,6 @@ if (!isset($options['droits']) OR !isset($options['droits']['supprimer'])) {
                    "url": "/js/datatables_fr.json",
                }
            });
        }
    });
</script>
 No newline at end of file
Loading