diff --git a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/data-set-handler.py b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/data-set-handler.py
index 0ae71c94496d77b2ab27bb4c941b791dbd94e7b6..5e0e34d417b68f2b303bf27c86a3b80293c8c65b 100644
--- a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/data-set-handler.py
+++ b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/data-set-handler.py
@@ -1,7 +1,22 @@
+from ch.systemsx.cisd.common.mail import EMailAddress
+
 SPACE_CODE = "RICH_SPACE"
 PROJECT_ID = "/RICH_SPACE/RICH_PROJECT"
 EXPERIMENT_ID = "/RICH_SPACE/RICH_PROJECT/RICH_EXPERIMENT"
 
+# the hooks
+
+def sendMail(context, subject, message):
+    mailClient = context.getGlobalState().getMailClient();
+    addressFrom = EMailAddress("example@example.com")
+    addressTo = EMailAddress("rich_test_example@example.com", "example name")
+    mailClient.sendEmailMessage(subject, message, None,
+            addressFrom, addressTo) 
+
+def post_metadata_registration(context):
+    content = "post_metadata_registration rich %s " % context.getPersistentMap().get("email_text")
+    sendMail(context, "Subject", "post_metadata_registration rich")
+
 def create_space_if_needed(transaction):
     space = transaction.getSpace(SPACE_CODE)
     if None == space:
@@ -19,18 +34,19 @@ def create_experiment_if_needed(transaction):
     exp = transaction.getExperiment(EXPERIMENT_ID)
     if None == exp:
         create_project_if_needed(transaction)
-        print 'Creating new experiment : ' + EXPERIMENT_ID
         exp = transaction.createNewExperiment(EXPERIMENT_ID, 'SIRNA_HCS')
         exp.setPropertyValue("DESCRIPTION", "A sample experiment")
 
     return exp
 
-
 def createMaterials(transaction):
     for x in range(0,100):
         mat = transaction.createNewMaterial("RM_%d" % x, "GENE")
         mat.setPropertyValue("GENE_SYMBOL", "RM_%d_S" %x)
 
+def createSamples(transaction):
+    sample = transaction.createNewSample('/RICH_SPACE/SAMPLE123', 'DYNAMIC_PLATE')
+
 def process(transaction):
     # create experiment
     experiment = create_experiment_if_needed(transaction)
@@ -43,3 +59,8 @@ def process(transaction):
 
     # register many materials
     createMaterials(transaction)
+    
+    # register samples
+    createSamples(transaction)
+
+    transaction.getRegistrationContext.getPersistentMap().put("email_text", "rich_email_text")
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java
index 4e9b8dbccd97c9f239e1240624fcb4452ebed752..a7498c656f3e6797415ef7059e8ff91bf889b08f 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java
@@ -40,7 +40,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
  */
 public class FeatureRichDataSetImportSystemTest extends SystemTestCase
 {
-    // for jython script go to sourceTest/core-plugins/generic-test/1/dss/drop-boxes/link-data-test
+    // for jython script go to sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test
 
     @Override
     protected File getIncomingDirectory()
@@ -51,6 +51,7 @@ public class FeatureRichDataSetImportSystemTest extends SystemTestCase
     @Test
     public void testRichImport() throws Exception
     {
+
         File exampleDataSet = new File(workingDirectory, "my-data");
         createExampleDataSet(exampleDataSet);
         moveFileToIncoming(exampleDataSet);
@@ -65,6 +66,25 @@ public class FeatureRichDataSetImportSystemTest extends SystemTestCase
         assertLinkedDataSetImported(openBISService);
 
         assert100MaterialsCreated(openBISService);
+
+        assertEmailHasBeenSentFromHook();
+    }
+
+    private void assertEmailHasBeenSentFromHook()
+    {
+        File emailDirectory = new File(new File(workingDirectory, "dss-root"), "email");
+
+        for (File f : FileUtilities.listFiles(emailDirectory))
+        {
+            String content = FileUtilities.loadExactToString(f);
+            if (content.contains("post_metadata_registration rich"))
+            {
+                assertTrue(content.contains("rich_email_text")); // check the content introduced
+                                                                 // with the persistent map
+                return; // assert ok
+            }
+        }
+        fail("No email found!");
     }
 
     private void assertSpaceProjectExperiment(IEncapsulatedOpenBISService openBISService)
@@ -99,8 +119,7 @@ public class FeatureRichDataSetImportSystemTest extends SystemTestCase
 
         for (int i = 0; i < 100; i++)
         {
-            MaterialIdentifier ident =
- MaterialIdentifier.tryParseIdentifier("RM_" + i + " (GENE)");
+            MaterialIdentifier ident = MaterialIdentifier.tryParseIdentifier("RM_" + i + " (GENE)");
             ids.add(ident);
         }
 
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/LinkDataSetImportSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/LinkDataSetImportSystemTest.java
index 640f3b5ebd8079100b25270fe4bb3daf7cf6ea9f..3e8f70a88e466a6c342c645f8daa03784edbb496 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/LinkDataSetImportSystemTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/LinkDataSetImportSystemTest.java
@@ -37,6 +37,9 @@ public class LinkDataSetImportSystemTest extends SystemTestCase
 
     // for jython script go to sourceTest/core-plugins/generic-test/1/dss/drop-boxes/link-data-test
 
+    File emailDirectory = new File(new File(new File(workingDirectory, "SystemTests"), "dss-root"),
+            "email");
+
     @Override
     protected File getIncomingDirectory()
     {