diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
index aefa2480124bd1da5fdf1a144bb7595c9e73b5b6..8b82e7cca4a1fda8145eaf1ba37a6f03d12ba78e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
@@ -33,6 +33,8 @@ import ch.systemsx.cisd.cifex.rpc.client.ICIFEXComponent;
 import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.exceptions.InvalidAuthenticationException;
 import ch.systemsx.cisd.common.exceptions.InvalidSessionException;
+import ch.systemsx.cisd.common.mail.IMailClient;
+import ch.systemsx.cisd.common.mail.MailClient;
 import ch.systemsx.cisd.common.mail.MailClientParameters;
 import ch.systemsx.cisd.common.spring.AbstractServiceWithLogger;
 import ch.systemsx.cisd.common.spring.IInvocationLoggerContext;
@@ -312,7 +314,8 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic
 
     @Override
     public TableModel createReportFromDatasets(String sessionToken, String userSessionToken,
-            String serviceKey, List<DatasetDescription> datasets)
+            String serviceKey, List<DatasetDescription> datasets,
+            String userEmailOrNull)
     {
         sessionTokenManager.assertValidSessionToken(sessionToken);
 
@@ -326,9 +329,11 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic
             {
                 manager.lock(dataSet.getDataSetCode());
             }
+            IMailClient mailClient = createEMailClient();
             return task.createReport(datasets, new DataSetProcessingContext(
                     getHierarchicalContentProvider(), new DataSetDirectoryProvider(storeRoot,
-                            manager), new HashMap<String, String>(), null, null, userSessionToken));
+                            manager), new HashMap<String, String>(), mailClient, userEmailOrNull,
+                    userSessionToken));
 
         } finally
         {
@@ -388,7 +393,8 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic
 
     @Override
     public TableModel createReportFromAggregationService(String sessionToken,
-            String userSessionToken, String serviceKey, Map<String, Object> parameters)
+            String userSessionToken, String serviceKey, Map<String, Object> parameters,
+            String userEmailOrNull)
     {
         sessionTokenManager.assertValidSessionToken(sessionToken);
         PluginTaskProvider<IReportingPluginTask> reportingPlugins =
@@ -397,9 +403,11 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic
         IShareIdManager manager = getShareIdManager();
         try
         {
+            IMailClient mailClient = createEMailClient();
             return task.createAggregationReport(parameters, new DataSetProcessingContext(
                     getHierarchicalContentProvider(), new DataSetDirectoryProvider(storeRoot,
-                            manager), new HashMap<String, String>(), null, null, userSessionToken));
+                            manager), new HashMap<String, String>(), mailClient, userEmailOrNull,
+                    userSessionToken));
 
         } finally
         {
@@ -407,6 +415,11 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic
         }
     }
 
+    private IMailClient createEMailClient()
+    {
+        return new MailClient(mailClientParameters);
+    }
+
     private void scheduleTask(String sessionToken, String description,
             IProcessingPluginTask processingTask, List<DatasetDescription> datasets,
             String userEmailOrNull)
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java
index 694ac583613534d973533a1babc6c4673a8b459f..39b74ad44d339547f79fd1d7cf84bea8f6d9dab9 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java
@@ -134,10 +134,11 @@ class DataStoreServiceLogger implements IDataStoreService, IInitializable
 
     @Override
     public TableModel createReportFromDatasets(String sessionToken, String userSessionToken,
-            String serviceKey, List<DatasetDescription> datasets)
+            String serviceKey, List<DatasetDescription> datasets,
+            String userEmailOrNull)
     {
-        log("createReportFromDatasets", "USER_SESSION(%s) TASK_ID(%s) NO_OF_DATASETS(%s)",
-                userSessionToken, serviceKey, datasets.size());
+        log("createReportFromDatasets", "USER_SESSION(%s) TASK_ID(%s) NO_OF_DATASETS(%s) EMAIL(%s)",
+                userSessionToken, serviceKey, datasets.size(), userEmailOrNull);
         return null;
     }
 
@@ -177,10 +178,11 @@ class DataStoreServiceLogger implements IDataStoreService, IInitializable
 
     @Override
     public TableModel createReportFromAggregationService(String sessionToken,
-            String userSessionToken, String serviceKey, Map<String, Object> parameters)
+            String userSessionToken, String serviceKey, Map<String, Object> parameters,
+            String userEmailOrNull)
     {
-        log("createReportFromAggregationService", "USER_SESSION(%s) SERVICE(%s) PARAMETERS(%s)",
-                userSessionToken, serviceKey, parameters);
+        log("createReportFromAggregationService", "USER_SESSION(%s) SERVICE(%s) PARAMETERS(%s) EMAIL(%s)",
+                userSessionToken, serviceKey, parameters, userEmailOrNull);
         return null;
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
index 07109604c23ce6e852f94898cc1870ba36ab2f08..1f57f31a80f1a2a544e44d1a86d92ff55c06e254 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
@@ -597,7 +597,7 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements
         String sessionToken = dataStore.getSessionToken();
         String userSessionToken = session.getSessionToken();
         return service.createReportFromDatasets(sessionToken, userSessionToken,
-                datastoreServiceKey, locations);
+                datastoreServiceKey, locations, tryGetLoggedUserEmail());
     }
 
     private List<DatasetDescription> loadAvailableDatasetDescriptions(List<String> dataSetCodes)
@@ -1051,6 +1051,6 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements
         String sessionToken = dataStore.getSessionToken();
         String userSessionToken = session.getSessionToken();
         return service.createReportFromAggregationService(sessionToken, userSessionToken,
-                datastoreServiceKey, parameters);
+                datastoreServiceKey, parameters, tryGetLoggedUserEmail());
     }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java
index a89aa38fa135acefbdb9e49985a99fd2fd30a3b8..b57331150e6f8887dc9750a72dca9fa7d3de6a72 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java
@@ -85,7 +85,7 @@ public interface IDataStoreService
 
     /** Runs the reporting task with the specified id for provided datasets */
     public TableModel createReportFromDatasets(String sessionToken, String userSessionToken,
-            String serviceKey, List<DatasetDescription> datasets);
+            String serviceKey, List<DatasetDescription> datasets, String userEmailOrNull);
 
     /**
      * Schedules the processing task with the specified id for provided datasets and specified
@@ -147,7 +147,8 @@ public interface IDataStoreService
      * @since 7
      */
     public TableModel createReportFromAggregationService(String sessionToken,
-            String userSessionToken, String serviceKey, Map<String, Object> parameters);
+            String userSessionToken, String serviceKey, Map<String, Object> parameters,
+            String userEmailOrNull);
 
     public String putDataSet(String sessionToken, String dropboxName,
             CustomImportFile customImportFile);