diff --git a/contrib/openldap/core-fd.schema b/contrib/openldap/core-fd.schema
index 06b2b2fe4b062a2d4fd3f96aa571e5f4d0d1705a..6c63b40cb2890d8b29166e85a17efa237afffa59 100644
--- a/contrib/openldap/core-fd.schema
+++ b/contrib/openldap/core-fd.schema
@@ -108,25 +108,51 @@ attributetype ( 1.3.6.1.4.1.38414.88.1.2 NAME 'fdMailTemplateRDN'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
   SINGLE-VALUE)
 
-attributetype ( 1.3.6.1.4.1.38414.88.1.3 NAME 'fdMailTemplateSignature'
+attributetype ( 1.3.6.1.4.1.38414.88.1.3 NAME 'fdMTPasswordRecoveryMailSubject'
   DESC 'FusionDirectory - template mail field'
   EQUALITY octetStringMatch
   SUBSTR caseIgnoreSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+  
 
-attributetype ( 1.3.6.1.4.1.38414.88.1.4 NAME 'fdMailTemplateAttachment'
+attributetype ( 1.3.6.1.4.1.38414.88.1.4 NAME 'fdMTPasswordRecoveryMailBody'
   DESC 'FusionDirectory - template mail field'
   EQUALITY octetStringMatch
   SUBSTR caseIgnoreSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
 
-attributetype ( 1.3.6.1.4.1.38414.88.1.5 NAME 'fdMailTemplateReadReceipt'
+attributetype ( 1.3.6.1.4.1.38414.88.1.5 NAME 'fdMTPasswordRecoveryMail2Subject'
   DESC 'FusionDirectory - template mail field'
   EQUALITY octetStringMatch
   SUBSTR caseIgnoreSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
 
-attributetype ( 1.3.6.1.4.1.38414.88.1.6 NAME 'fdMailTemplateSubject'
+attributetype ( 1.3.6.1.4.1.38414.88.1.6 NAME 'fdMTPasswordRecoveryMail2Body'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+
+attributetype ( 1.3.6.1.4.1.38414.88.1.8 NAME 'fdMailTemplateSignature'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.38414.88.1.9 NAME 'fdMailTemplateAttachment'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.38414.88.1.10 NAME 'fdMailTemplateReadReceipt'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.38414.88.1.11 NAME 'fdMailTemplateSubject'
   DESC 'FusionDirectory - template mail field'
   EQUALITY octetStringMatch
   SUBSTR caseIgnoreSubstringsMatch
@@ -177,7 +203,14 @@ objectclass (1.3.6.1.4.1.38414.88.2.1 NAME 'fdMailTemplate'
   MUST ( cn $ fdMailTemplateBody $ fdMailTemplateSubject )
   MAY ( fdMailTemplateSignature $ fdMailTemplateReadReceipt $ fdMailTemplateAttachment  ) )
 
-objectclass ( 1.3.6.1.4.1.38414.88.2.2 NAME 'fdMailTemplateConf'
+
+objectclass (1.3.6.1.4.1.38414.88.2.2 NAME 'fdMailTemplateUserRecovery'
+  DESC 'FusionDirectory - template mail object Recovery'
+  SUP top AUXILIARY
+  MUST ( cn )
+  MAY ( fdMTPasswordRecoveryMailSubject $ fdMTPasswordRecoveryMailBody $ fdMTPasswordRecoveryMail2Subject $ fdMTPasswordRecoveryMail2Body) )
+
+objectclass ( 1.3.6.1.4.1.38414.88.2.3 NAME 'fdMailTemplateConf'
   DESC 'FusionDirectory Mail Template Configuration'
   SUP top AUXILIARY
   MUST ( cn )
diff --git a/plugins/addons/mailtemplate/class_mailTemplateUserRecovery.inc b/plugins/addons/mailtemplate/class_mailTemplateUserRecovery.inc
new file mode 100644
index 0000000000000000000000000000000000000000..f0def946cc8881f37d2aa6348156a71e6b8b178c
--- /dev/null
+++ b/plugins/addons/mailtemplate/class_mailTemplateUserRecovery.inc
@@ -0,0 +1,110 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org)
+
+  Copyright (C) 2018-2019 FusionDirectory
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+class mailTemplateUserRecovery extends simplePlugin
+{
+  protected $displayHeader = TRUE;
+
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'   => _('Mail Template User Recovery'),
+      'plDescription' => _('Mail Template User Recovery'),
+      'plIcon'        => 'geticon.php?context=applications&icon=supann&size=48',
+      'plSmallIcon'   => 'geticon.php?context=applications&icon=supann-status&size=16',
+      'plPriority'    => 31,
+      'plObjectClass' => ['fdMailTemplateUserRecovery'],
+      'plFilter'      => '(objectClass=fdMailTemplateUserRecovery)',
+      'plObjectType'  => ['mailTemplate'],
+      'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return  [
+      'first_email' => [
+        'name' => _('First email'),
+        'attrs' => [
+          new StringAttribute(
+            _('Subject'),
+            _('Subject of the first email'),
+            'fdMTPasswordRecoveryMailSubject',
+            TRUE,
+            _("[FusionDirectory] Password recovery link")
+          ),
+          new TextAreaAttribute(
+            _('Body'),
+            _('Body of the first email, sent when the user ask for a new password. Use %login% for the login and %link% for the recovery link.'),
+            'fdMTPasswordRecoveryMailBody',
+            TRUE,
+            _("Hello,\n\nHere is your information: \n - Login : %login%\n - Link : %link%\n\nThis link is only valid for 10 minutes.")
+          )
+        ]
+      ],
+      'second_email' => [
+        'name' => _('Second email'),
+        'attrs' => [
+          new StringAttribute(
+            _('Subject'),
+            _('Subject of the second email'),
+            'fdMTPasswordRecoveryMail2Subject',
+            TRUE,
+            _("[FusionDirectory] Password recovery successful")
+          ),
+          new TextAreaAttribute(
+            _('Body'),
+            _('Body of the second email, sent to confirm the password has been changed. Use %login% for the user login.'),
+            'fdMTPasswordRecoveryMail2Body',
+            TRUE,
+           _("Hello,\n\nYour password has been changed.\nYour login is still %login%.")
+          )
+        ]
+      ]
+    ];
+  }
+
+  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    global $config;
+    parent::__construct($dn, $object, $parent, $mainTab);
+  }
+
+  protected function shouldSave (): bool
+  {
+    global $config;
+
+    $ldap = $config->get_ldap_link();
+    $ldap->cd($config->current['BASE']);
+    $ldap->search('(&(objectClass=fdMailTemplateUserRecovery))', ['cn','fdMTPasswordRecoveryMailSubject']);
+    while ($attrs = $ldap->fetch()) {
+      if (isset($this->attrs['fdMTPasswordRecoveryMailSubject'])) {
+        $error = new FusionDirectoryError(htmlescape(sprintf(_('User Reminder Template Is Already Existing!'))));
+        $error->display();
+
+        return FALSE;
+      }
+    }
+
+    return TRUE;
+  }
+
+}