diff --git a/config/packages/mailer.yaml b/config/packages/mailer.yaml
index 56a650d89b2aec830ca3618bbdc7b6ff752e3501..87380581959cc79797228862b23877c2f931dc08 100644
--- a/config/packages/mailer.yaml
+++ b/config/packages/mailer.yaml
@@ -1,3 +1,16 @@
-framework:
-    mailer:
-        dsn: '%env(MAILER_DSN)%'
+when@preprod:
+    framework:
+        mailer:
+            dsn: '%env(MAILER_DSN)%'
+            envelope:
+                recipients: ['fleutotp@gmail.com', 'enzo.simonnet@liris.cnrs.fr', 'mathieu.loiseau@liris.cnrs.fr']
+
+when@dev:
+    framework:
+        mailer:
+            dsn: '%env(MAILER_DSN)%'
+
+when@prod:
+    framework:
+        mailer:
+            dsn: '%env(MAILER_DSN)%'
\ No newline at end of file
diff --git a/config/packages/monolog.yaml b/config/packages/monolog.yaml
index 8c9efa91e025afcfcd7b1622d2238446b86cab07..3a453d6a50ff10eaef9c46542e32a34b7574b8bf 100644
--- a/config/packages/monolog.yaml
+++ b/config/packages/monolog.yaml
@@ -43,19 +43,54 @@ when@prod:
             main:
                 type: fingers_crossed
                 action_level: error
-                handler: nested
+                handler: grouped
                 excluded_http_codes: [404, 405]
                 buffer_size: 50 # How many messages should be saved? Prevent memory leaks
-            nested:
-                type: stream
-                path: php://stderr
+            grouped:
+                type:    group
+                members: [streamed, symfony_mailer]
+            streamed:
+                type:  stream
+                path:  '%kernel.logs_dir%/%kernel.environment%.log'
                 level: debug
-                formatter: monolog.formatter.json
-            console:
-                type: console
-                process_psr_3_messages: false
-                channels: ["!event", "!doctrine"]
-            deprecation:
-                type: stream
-                channels: [deprecation]
-                path: php://stderr
+            deduplicated:
+                type:    deduplication
+                time: 10             # the time in seconds during which duplicate entries are discarded (default: 60)
+                handler: symfony_mailer
+            symfony_mailer:
+                type:         symfony_mailer
+                from_email:   '%env(MONOLOG_ERROR_MAIL_FROM)%'
+                to_email:     '%env(MONOLOG_ERROR_MAIL_TO)%'
+                subject:      'Bug Balex %kernel.environment% : %%message%%'
+                level:        critical
+                formatter:    monolog.formatter.extra_data
+                content_type: text/html
+
+when@preprod:
+    monolog:
+        handlers:
+            main:
+                type: fingers_crossed
+                action_level: error
+                handler: grouped
+                excluded_http_codes: [404, 405]
+                buffer_size: 50 # How many messages should be saved? Prevent memory leaks
+            grouped:
+                type:    group
+                members: [streamed, symfony_mailer]
+            streamed:
+                type:  stream
+                path:  '%kernel.logs_dir%/%kernel.environment%.log'
+                level: debug
+            deduplicated:
+                type:    deduplication
+                time: 10             # the time in seconds during which duplicate entries are discarded (default: 60)
+                handler: symfony_mailer
+            symfony_mailer:
+                type:         symfony_mailer
+                from_email:   '%env(MONOLOG_ERROR_MAIL_FROM)%'
+                to_email:     '%env(MONOLOG_ERROR_MAIL_TO)%'
+                subject:      'Bug Balex %kernel.environment% : %%message%%'
+                level:        critical
+                formatter:    monolog.formatter.extra_data
+                content_type: text/html
diff --git a/config/services.yaml b/config/services.yaml
index e983b4fea3290ec7cf3ba87b6d707b4e8b7a508e..d03bcf5038c181b0a0e20d0c4b08b2711dd87e91 100644
--- a/config/services.yaml
+++ b/config/services.yaml
@@ -37,6 +37,15 @@ services:
         tags: [serializer.normalizer]
 
 
+    monolog.formatter.extra_data:
+        class: Monolog\Formatter\HtmlFormatter
+        arguments:
+            - "[%%datetime%%] [%%extra.token%%] %%channel%%.%%level_name%%: %%message%% %%context%% %%extra%%\n"
+
+    App\Logger\ExtraDataProcessor:
+        tags:
+            - { name: monolog.processor }
+
 #    app.listener.api_exception:
 #        class: AppBundle\EventListener\ApiExceptionSubscriber
 #        tags:
diff --git a/src/EventSubscriber/CheckVerifiedUserSubscriber.php b/src/EventSubscriber/CheckVerifiedUserSubscriber.php
index 52affab89bcd910f264665d7b126e66b133bbc35..a6643a11de98a1c8f3e4363d5577d11f473ae029 100644
--- a/src/EventSubscriber/CheckVerifiedUserSubscriber.php
+++ b/src/EventSubscriber/CheckVerifiedUserSubscriber.php
@@ -20,11 +20,11 @@ class CheckVerifiedUserSubscriber implements EventSubscriberInterface
         if (!$user instanceof User) {
             throw new \Exception('Unexpected user type');
         }
-//        if (!$user->getIsVerified()) {
-//            throw new CustomUserMessageAuthenticationException(
-//                "Veuillez confirmer la création de votre compte depuis l'email reçu."
-//            );
-//        }
+        if (!$user->getIsVerified()) {
+            throw new CustomUserMessageAuthenticationException(
+                "Veuillez confirmer la création de votre compte depuis l'email reçu."
+            );
+        }
     }
     public static function getSubscribedEvents()
     {
diff --git a/src/Logger/ExtraDataProcessor.php b/src/Logger/ExtraDataProcessor.php
new file mode 100644
index 0000000000000000000000000000000000000000..0ceb7145ecf08ce75b193a866d4347f9b6a50457
--- /dev/null
+++ b/src/Logger/ExtraDataProcessor.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace App\Logger;
+
+use App\Entity\User;
+use Symfony\Component\HttpFoundation\RequestStack;
+use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
+use Symfony\Component\Security\Core\Security;
+
+class ExtraDataProcessor
+{
+    private $tokenStorage;
+    private $requestStack;
+
+    public function __construct(Security $security, RequestStack $requestStack)
+    {
+        $this->security = $security;
+        $this->requestStack = $requestStack;
+    }
+
+    public function __invoke(array $record)
+    {
+        if ($this->security->getUser() != null) {
+            $user = $this->security->getUser();
+            if ($user instanceOf User) {
+                $record['extra']['utilisateur']['nom'] = $user->getPseudo();
+                $record['extra']['utilisateur']['email'] = $user->getEmail();
+            } else {
+                $record['extra']['utilisateur'] = "Not logged in.";
+            }
+        } else {
+            $record['extra']['utilisateur'] = "Not logged in.";
+        }
+
+        $request = $this->requestStack->getCurrentRequest();
+        if ($request){
+            $record['extra']['url'] = $request->getUri();
+        }
+
+        return $record;
+    }
+}