diff --git a/ldap_config.json b/ldap_config.json
index 21bc57348e0eb4fbc90feb6e6a6b96ea434f2342..aafbd512ef7cd3c5e94c101ae2a5355393122971 100644
--- a/ldap_config.json
+++ b/ldap_config.json
@@ -13,11 +13,21 @@
 	"user": {
 		"uid": "uid",
 		"password": "userPassword",
+
 		"givenName": "givenName",
 		"lastName": "sn",
+		
+		"fullName": "cn",
+		"cleanFullName": "gecos",
+		"cleanFullNameEn": "cn;lang-en",
+		
 		"nickname": "pseudonym",
+		"matricule": "matricule",
+		"import_dn": "ldapEnsDN",
+
 		"gender": "gender",
-		"photo": "urlPhoto",
+		"photo": "jpegPhoto",
+		"urlPhoto": "urlPhoto",
 		"phone": "telephoneNumber",
 		"address": "roomNumber",
 		"mail": "email",
@@ -26,8 +36,10 @@
 		"login": "loginShell",
 		"directory": "homeDirectory",
 		"classes": "objectClass",
+		
 		"idNumber": "uidNumber",
-		"cleanFullName": "gecos",
+		"const": "gidNumber",
+
 		"admins": "adminOf",
 		"speakers": "speakerOf",
 		"members": "memberOf",
@@ -37,16 +49,20 @@
 	"group": {
 		"gid": "cn",
 		"name": "sn",
+		"nameEn": "sn;lang-en",
 		"site": "website",
+		"email": "email",
 		"description": "description",
 		"category": "groupCategory",
 		"admins": "admin",
+		"admins2": "adminUid",
 		"speakers": "speaker",
 		"members": "member",
 		"followers": "follower",
-		"adress": "cn",
+		"adress": "roomNumber",
 		"idNumber": "gidNumber",
-		"logo": "urlPhoto",
+		"logo": "jpegPhoto",
+		"urlLogo": "urlPhoto",
 		"classes": "objectClass",
 		"parents": "parent"
 	}
diff --git a/src/ldap/export/group.ts b/src/ldap/export/group.ts
index fa3e818d798d092d3be75bf19d06abbb387fbc54..7434e13a799a3adaf8b598f6bfccd58ce7c52bea 100644
--- a/src/ldap/export/group.ts
+++ b/src/ldap/export/group.ts
@@ -83,12 +83,8 @@ export class Group {
      * @async
     */
     static async search(data: groupData) : Promise<string[]> {
-        try {
-            return Tools.search("group", data);
-        }
-        catch(err) {
-            throw "Erreur lors de la recherche approximative d'un groupe.";
-        }
+        try         { return Tools.search("group", data); }
+        catch(err)  { throw "Erreur lors de la recherche approximative d'un groupe."; }
     }
 
     /**
diff --git a/src/ldap/internal/basics.ts b/src/ldap/internal/basics.ts
index 664cdd7760bf991ad8459a3551a285d6b3bf4a26..dd5dc3b26be49587d83d6dc1e429e9aa518359af 100644
--- a/src/ldap/internal/basics.ts
+++ b/src/ldap/internal/basics.ts
@@ -46,7 +46,7 @@ export class Basics {
             // Se déconnecter dans le doute
             client.unbind();
             // Escape DN as everywhere in this file, but password is taken as is
-            client.bind(process.env.DN, process.env.PASSWORD, err => {
+            client.bind(process.env.LDAP_DN, process.env.LDAP_PASSWD, err => {
                 // Gestion erreur
                 if (err instanceof ldap.LDAPError) {
                     console.log("Erreur lors de la connection au LDAP : "+err.message);
diff --git a/src/ldap/internal/tools.ts b/src/ldap/internal/tools.ts
index ceff61aa756673b5169e02e7a88e20dbdaad7965..bfb4567c5b18acb5816710d42b657274ca67f34f 100644
--- a/src/ldap/internal/tools.ts
+++ b/src/ldap/internal/tools.ts
@@ -6,8 +6,6 @@
 
 // Toutes les entrées utilisateur sont escapées par sécurité
 import ldapEscape from 'ldap-escape';
-// Permet d'envoyer des mails
-import nodemailer from 'nodemailer';
 // Imports externes limités aux types de l'API
 import {userData} from '../export/user';
 import {groupData} from '../export/group';
@@ -15,42 +13,6 @@ import {groupData} from '../export/group';
 import { ldapConfig, categories } from './config';
 import {Basics} from './basics';
 
-// async..await is not allowed in global scope, must use a wrapper
-async function main(){
-  // Generate test SMTP service account from ethereal.email
-  // Only needed if you don't have a real mail account for testing
-  let testAccount = await nodemailer.createTestAccount();
-
-  // create reusable transporter object using the default SMTP transport
-  let transporter = nodemailer.createTransport({
-    host: "smtp.ethereal.email",
-    port: 587,
-    secure: false, // true for 465, false for other ports
-    auth: {
-      user: testAccount.user, // generated ethereal user
-      pass: testAccount.pass // generated ethereal password
-    }
-  });
-
-  // send mail with defined transport object
-  let info = await transporter.sendMail({
-    from: '"Fred Foo 👻" <foo@example.com>', // sender address
-    to: "bar@example.com, baz@example.com", // list of receivers
-    subject: "Hello ✔", // Subject line
-    text: "Hello world?", // plain text body
-    html: "<b>Hello world?</b>" // html body
-  });
-
-  console.log("Message sent: %s", info.messageId);
-  // Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
-
-  // Preview only available when sending through an Ethereal account
-  console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
-  // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
-}
-
-main().catch(console.error);
-
 //------------------------------------------------------------------------------------------------------------------------
 // Fonctions intermédiaires TBT
 //------------------------------------------------------------------------------------------------------------------------
diff --git a/src/ldap/test.ts b/src/ldap/test.ts
index baa8af68202bff41e261c208b0f42dcc4c900d23..6fab0237bd8a5b06e0f0343e3e017d0d7d420439 100644
--- a/src/ldap/test.ts
+++ b/src/ldap/test.ts
@@ -11,4 +11,9 @@ import {User} from './export/user';
 
 User.peek("oliver.facklam").then(dat => console.log(dat));
 
-test_creation();
\ No newline at end of file
+test_creation();
+
+
+// Permet d'envoyer des mails
+import nodemailer from 'nodemailer';
+