diff --git a/app/classes/Framadate/Services/InputService.php b/app/classes/Framadate/Services/InputService.php
index 3b11e7e0a9b773364cbe696066217c0eab79bfcb..904fe95eaaa1edc1e7fd8a22e452c2ce4126fc9c 100644
--- a/app/classes/Framadate/Services/InputService.php
+++ b/app/classes/Framadate/Services/InputService.php
@@ -18,6 +18,8 @@
  */
 namespace Framadate\Services;
 use DateTime;
+use Egulias\EmailValidator\EmailValidator;
+use Egulias\EmailValidator\Validation\RFCValidation;
 
 /**
  * This class helps to clean all inputs from the users or external services.
@@ -65,8 +67,26 @@ class InputService {
     }
 
     public function filterMail($mail) {
-        $mail = trim($mail);
-        return filter_var($mail, FILTER_VALIDATE_EMAIL);
+    	///////////////////////////////////////////////////////////////////////////////////////
+        // formatting
+        
+    	$mail = trim($mail);
+        
+    	///////////////////////////////////////////////////////////////////////////////////////
+        // e-mail validation
+        
+        $resultat = FALSE;
+        
+    	$validator = new EmailValidator();
+    	
+        if ($validator->isValid($mail, new RFCValidation())) {
+            $resultat = $mail;
+        }
+        
+        ///////////////////////////////////////////////////////////////////////////////////////
+        // return
+        
+        return $resultat;
     }
 
     public function filterDescription($description) {
diff --git a/app/tests/Framadate/Services/InputServiceUnitTest.php b/app/tests/Framadate/Services/InputServiceUnitTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..d4646c6d6b3eb2190a4d0f298908f3beb96df7cf
--- /dev/null
+++ b/app/tests/Framadate/Services/InputServiceUnitTest.php
@@ -0,0 +1,33 @@
+<?php
+namespace Framadate\Services;
+
+use Framadate\FramaTestCase;
+
+class InputServiceUnitTest extends FramaTestCase
+{
+	/**
+	 * @test
+	 * @dataProvider liste_emails
+	 */
+	function test_filterMail($email, $expected) {
+		$inputService = new InputService();
+		$filtered = $inputService->filterMail($email);
+		
+		$this->assertSame($expected, $filtered);
+	}
+	
+	function liste_emails() {
+		return [
+			// valids addresses
+			"valid address" 		=> ["example@example.com", "example@example.com"],
+			"local address"			=> ["test@localhost", "test@localhost"],
+			"IP address"			=> ["ip.email@127.0.0.1", "ip.email@127.0.0.1"],
+			"with spaces arround" 	=> ["  with@spaces  ", "with@spaces"],
+			"unicode caracters" 	=> ["unicode.éà@idn-œ.com", "unicode.éà@idn-œ.com"],
+			// invalids addresses
+			"without domain" 		=> ["without-domain", FALSE],
+			"space inside" 			=> ["example example@example.com", FALSE],
+			"forbidden chars" 		=> ["special_chars.@example.com", FALSE],
+		];
+	}
+}
diff --git a/composer.json b/composer.json
index f48c4aa32e2c9768a31664532426c714139c8397..d19901f92aed2dde62a749df1be9003a2bab0707 100644
--- a/composer.json
+++ b/composer.json
@@ -61,7 +61,8 @@
         "phpmailer/phpmailer": "^5.2",
         "ircmaxell/password-compat": "dev-master",
         "roave/security-advisories": "dev-master",
-        "erusev/parsedown": "^1.7"
+        "erusev/parsedown": "^1.7",
+        "egulias/email-validator": "~2.1"
     },
 
     "require-dev": {
diff --git a/composer.lock b/composer.lock
index 6e33e0f827fb8b4d64b33eb06dfadcdc8955a359..e855b8c353a1eaa3f25a857774480e3e4528c774 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,119 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "a3ca2dd4f87562095f8c19a94560fed7",
+    "content-hash": "40759eac537218b0212ed923261b9850",
     "packages": [
+        {
+            "name": "doctrine/lexer",
+            "version": "v1.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/doctrine/lexer.git",
+                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
+                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Doctrine\\Common\\Lexer\\": "lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Roman Borschel",
+                    "email": "roman@code-factory.org"
+                },
+                {
+                    "name": "Guilherme Blanco",
+                    "email": "guilhermeblanco@gmail.com"
+                },
+                {
+                    "name": "Johannes Schmitt",
+                    "email": "schmittjoh@gmail.com"
+                }
+            ],
+            "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
+            "homepage": "http://www.doctrine-project.org",
+            "keywords": [
+                "lexer",
+                "parser"
+            ],
+            "time": "2014-09-09T13:34:57+00:00"
+        },
+        {
+            "name": "egulias/email-validator",
+            "version": "2.1.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/egulias/EmailValidator.git",
+                "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/1bec00a10039b823cc94eef4eddd47dcd3b2ca04",
+                "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/lexer": "^1.0.1",
+                "php": ">= 5.5"
+            },
+            "require-dev": {
+                "dominicsayers/isemail": "dev-master",
+                "phpunit/phpunit": "^4.8.35",
+                "satooshi/php-coveralls": "^1.0.1"
+            },
+            "suggest": {
+                "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Egulias\\EmailValidator\\": "EmailValidator"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Eduardo Gulias Davis"
+                }
+            ],
+            "description": "A library for validating emails against several RFCs",
+            "homepage": "https://github.com/egulias/EmailValidator",
+            "keywords": [
+                "email",
+                "emailvalidation",
+                "emailvalidator",
+                "validation",
+                "validator"
+            ],
+            "time": "2017-11-15T23:40:40+00:00"
+        },
         {
             "name": "erusev/parsedown",
             "version": "1.7.1",
@@ -613,60 +724,6 @@
             ],
             "time": "2015-06-14T21:17:01+00:00"
         },
-        {
-            "name": "doctrine/lexer",
-            "version": "v1.0.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/lexer.git",
-                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
-                "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.2"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Doctrine\\Common\\Lexer\\": "lib/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Roman Borschel",
-                    "email": "roman@code-factory.org"
-                },
-                {
-                    "name": "Guilherme Blanco",
-                    "email": "guilhermeblanco@gmail.com"
-                },
-                {
-                    "name": "Johannes Schmitt",
-                    "email": "schmittjoh@gmail.com"
-                }
-            ],
-            "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
-            "homepage": "http://www.doctrine-project.org",
-            "keywords": [
-                "lexer",
-                "parser"
-            ],
-            "time": "2014-09-09T13:34:57+00:00"
-        },
         {
             "name": "friendsofphp/php-cs-fixer",
             "version": "v2.10.4",