diff --git a/src/main/java/org/olat/admin/user/imp/SendMailConfirmationController.java b/src/main/java/org/olat/admin/user/imp/SendMailConfirmationController.java
index e4bdc1b3e1003dc1944c0a964ca688866d4c62fa..d94f46d4bc9b7fe8f7853db78d3f4a86996b78da 100644
--- a/src/main/java/org/olat/admin/user/imp/SendMailConfirmationController.java
+++ b/src/main/java/org/olat/admin/user/imp/SendMailConfirmationController.java
@@ -57,10 +57,14 @@ public class SendMailConfirmationController extends StepFormBasicController {
 		List<Long> ownGroups = (List<Long>) getFromRunContext("ownerGroups");
 		@SuppressWarnings("unchecked")
 		List<Long> partGroups = (List<Long>) getFromRunContext("partGroups");
+		@SuppressWarnings("unchecked")
+		List<TransientIdentity> newIdents = (List<TransientIdentity>)getFromRunContext("newIdents");
 		
 		String[] values = new String[] { translate("step3.send.mail") };
 		typEl = uifactory.addCheckboxesVertical("typ", "step3.send.label", formLayout, keys, values, 1);
-		typEl.setEnabled(ownGroups.size() > 0 || partGroups.size() > 0);
+		typEl.setEnabled((ownGroups != null && ownGroups.size() > 0)
+				|| (partGroups != null && partGroups.size() > 0)
+				|| (newIdents != null && newIdents.size() > 0));
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/admin/user/imp/UserImportController.java b/src/main/java/org/olat/admin/user/imp/UserImportController.java
index e65cea510efd30355c34f5670f8f49fe123d6424..e293f003f6c6ae5ba8f5c96d66a316b9b27f7a39 100644
--- a/src/main/java/org/olat/admin/user/imp/UserImportController.java
+++ b/src/main/java/org/olat/admin/user/imp/UserImportController.java
@@ -27,11 +27,15 @@ package org.olat.admin.user.imp;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Locale;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.velocity.VelocityContext;
 import org.olat.basesecurity.Authentication;
 import org.olat.basesecurity.BaseSecurity;
 import org.olat.core.commons.persistence.DB;
@@ -49,10 +53,19 @@ import org.olat.core.gui.control.generic.wizard.Step;
 import org.olat.core.gui.control.generic.wizard.StepRunnerCallback;
 import org.olat.core.gui.control.generic.wizard.StepsMainRunController;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
+import org.olat.core.gui.translator.Translator;
+import org.olat.core.helpers.Settings;
 import org.olat.core.id.Identity;
 import org.olat.core.id.User;
+import org.olat.core.id.UserConstants;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.Util;
+import org.olat.core.util.i18n.I18nManager;
+import org.olat.core.util.mail.MailBundle;
+import org.olat.core.util.mail.MailManager;
 import org.olat.core.util.mail.MailPackage;
+import org.olat.core.util.mail.MailTemplate;
+import org.olat.core.util.mail.MailerResult;
 import org.olat.group.BusinessGroupService;
 import org.olat.group.model.BusinessGroupMembershipChange;
 import org.olat.login.auth.OLATAuthManager;
@@ -89,6 +102,8 @@ public class UserImportController extends BasicController {
 	@Autowired
 	private UserManager um;
 	@Autowired
+	private MailManager mailService;
+	@Autowired
 	private BaseSecurity securityManager;
 	@Autowired
 	private OLATAuthManager olatAuthManager;
@@ -252,11 +267,14 @@ public class UserImportController extends BasicController {
 					if (runContext.containsKey("validImport") && ((Boolean) runContext.get("validImport")).booleanValue()) {
 						// create new users and persist
 						int count = 0;
-
 						@SuppressWarnings("unchecked")
 						List<TransientIdentity> newIdents = (List<TransientIdentity>) runContext.get("newIdents");
+						Map<TransientIdentity,Identity> newPersistedIdentities = new HashMap<>();
 						for (TransientIdentity newIdent:newIdents) {
-							doCreateAndPersistIdentity(newIdent, report);
+							Identity newIdentity = doCreateAndPersistIdentity(newIdent, report);
+							if(newIdentity != null) {
+								newPersistedIdentities.put(newIdent, newIdentity);
+							}
 							if(++count % 10 == 0) {
 								dbInstance.commitAndCloseSession();
 							}
@@ -286,6 +304,11 @@ public class UserImportController extends BasicController {
 							Boolean sendMailObj = (Boolean)runContext.get("sendMail");
 							boolean sendmail = sendMailObj == null ? true : sendMailObj.booleanValue();
 							processGroupAdditionForAllIdents(allIdents, ownGroups, partGroups, sendmail);
+						} else {
+							Boolean sendMailObj = (Boolean)runContext.get("sendMail");
+							if(sendMailObj != null && sendMailObj) {
+								sendMailToNewIdentities(newPersistedIdentities);
+							}
 						}
 						report.setHasChanges(true);
 					}
@@ -322,6 +345,51 @@ public class UserImportController extends BasicController {
 		identities.addAll(nextIds);
 		return identities;
 	}
+	
+	private void sendMailToNewIdentities(Map<TransientIdentity,Identity> newIdentities) {
+		MailerResult result = new MailerResult();
+		for(Map.Entry<TransientIdentity, Identity> newEntry:newIdentities.entrySet()) {
+			if(newEntry.getKey() != null && newEntry.getValue() != null) {
+				Identity newIdentity = newEntry.getValue();
+				MailTemplate template = createMailTemplateForNewIdentity(newIdentity, newEntry.getKey());
+				MailBundle bundle = mailService.makeMailBundle(null, newIdentity, template, getIdentity(), null, result);
+				if(bundle != null) {
+					mailService.sendExternMessage(bundle, result, true);
+				}
+			}
+		}
+	}
+	
+	private MailTemplate createMailTemplateForNewIdentity(Identity identity, TransientIdentity transientIdentity) {
+		// get some data about the actor and fetch the translated subject / body via i18n module
+		String[] bodyArgs = new String[] {
+				identity.getName(),												//{0}
+				identity.getUser().getProperty(UserConstants.FIRSTNAME, null),	//{1}
+				identity.getUser().getProperty(UserConstants.LASTNAME, null),	//{2}
+				identity.getUser().getProperty(UserConstants.EMAIL, null),		//{3}
+				Settings.getServerContextPathURI(),								//{4}
+				transientIdentity.getPassword()									//{5}
+		};
+		Locale locale = I18nManager.getInstance().getLocaleOrDefault(identity.getUser().getPreferences().getLanguage());
+		Translator translator = Util.createPackageTranslator(UserImportController.class, locale);
+
+		String subject = translator.translate("mail.new.identity.subject");
+		String body = translator.translate("mail.new.identity.text", bodyArgs);
+		
+		// create a mail template which all these data
+		MailTemplate mailTempl = new MailTemplate(subject, body, null) {
+			@Override
+			public void putVariablesInMailContext(VelocityContext context, Identity identity) {
+				// Put user variables into velocity context
+				User user = identity.getUser();
+				context.put("firstname", user.getProperty(UserConstants.FIRSTNAME, null));
+				context.put("lastname", user.getProperty(UserConstants.LASTNAME, null));
+				//the email of the user, needs to stay named 'login'
+				context.put("login", user.getProperty(UserConstants.EMAIL, null));
+			}
+		};
+		return mailTempl;
+	}
 
 	private void processGroupAdditionForAllIdents(List<Identity> allIdents, List<Long> tutorGroups, List<Long> partGroups, boolean sendmail) {
 		Collection<Identity> identities = getIdentities(allIdents);
diff --git a/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_de.properties
index 73245880583666f504a86cd13deeaa0c4e95df61..d2b88bbce94b302cbe4452e26cf72217c9d37da7 100644
--- a/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_de.properties
@@ -32,6 +32,8 @@ import.start=Benutzerimport starten
 import.success=Die neuen Benutzer wurden erfolgreich angelegt.
 import.user.existing.alt=Dieser Benutzer existiert bereits, er wird nicht neu angelegt
 import.user.new.alt=Dieser Benutzer existiert noch nicht, er wird neu angelegt
+mail.new.identity.subject=Benutzerkonto Lernplattform 
+mail.new.identity.text=Guten Tag {1} {2},\n\nSoeben wurde f\u00FCr Sie ein Benutzerkonto auf der Lernplattform {4} erstellt. Um auf die Lerninhalte zugreifen zu k\u00F6nnen, gehen Sie bitte auf {4} und geben dort Ihren Benutzernamen {0} oder Ihre email-Adresse {3} ein sowie Ihr Passwort {5} ein. \n\nMit freundlichen Gr\u00FCssen\nDas elearning Team
 step0.description=Datenbeispiele und Daten einf\u00FCgen
 step0.short.descr=User importieren.
 step1.description=Vorschau der Benutzerdaten
diff --git a/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_en.properties
index 84e5ceccb2e8307ab748b6fae122729c1748a691..f6835fb70fcd4cadcfb6ae79d5883bd59c013da7 100644
--- a/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_en.properties
@@ -32,6 +32,8 @@ import.start=Start user import
 import.success=New users successfully created.
 import.user.existing.alt=This user already exists and will therefore not be created anew.
 import.user.new.alt=This user does not exist yet and will therefore be created.
+mail.new.identity.subject=Learning platform's user account
+mail.new.identity.text=Hello {1} {2},\n\nWe just create a user account on the learning platform {4}. To access the learning content, please follow the link {4} and enter your user name {0} or your mail address {3} and your password {5}. \n\nBest regards\nYour elearning Team
 step0.description=View examples and insert data
 step0.short.descr=Import user
 step1.description=Preview of user data