diff --git a/src/main/java/de/thm/arsnova/service/UserServiceImpl.java b/src/main/java/de/thm/arsnova/service/UserServiceImpl.java
index 10802621170b17221dd445f9933941877c717dd9..29f729b41d90f0e4b2e0bdf6ce8d62849f558cfd 100644
--- a/src/main/java/de/thm/arsnova/service/UserServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/UserServiceImpl.java
@@ -438,7 +438,7 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 		userProfile.setAuthProvider(UserProfile.AuthProvider.ARSNOVA);
 		userProfile.setLoginId(lcUsername);
 		account.setPassword(encodePassword(password));
-		account.setActivationKey(RandomStringUtils.randomAlphanumeric(32));
+		account.setActivationKey(RandomStringUtils.randomAlphanumeric(8));
 		userProfile.setCreationTimestamp(new Date());
 
 		/* Repository is accessed directly without EntityService to skip permission check */
@@ -462,15 +462,9 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 
 	private void sendActivationEmail(final UserProfile userProfile) {
 		final String activationKey = userProfile.getAccount().getActivationKey();
-		final String activationUrl = MessageFormat.format(
-				"{0}{1}/login?action=activate&username={3}&key={4}",
-				rootUrl,
-				customizationPath,
-				UriUtils.encodeQueryParam(userProfile.getLoginId(), "UTF-8"),
-				activationKey);
 
 		sendEmail(userProfile, registeredProperties.getRegistrationMailSubject(),
-				MessageFormat.format(registeredProperties.getRegistrationMailBody(), activationUrl, activationKey));
+				MessageFormat.format(registeredProperties.getRegistrationMailBody(), activationKey, rootUrl));
 	}
 
 	private void parseMailAddressPattern() {
@@ -563,27 +557,15 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 			throw new BadRequestException();
 		}
 
-		account.setPasswordResetKey(RandomStringUtils.randomAlphanumeric(32));
+		account.setPasswordResetKey(RandomStringUtils.randomAlphanumeric(8));
 		account.setPasswordResetTime(new Date());
 
 		if (null == userRepository.save(userProfile)) {
 			logger.error("Password reset failed. {} could not be updated.", username);
 		}
 
-		final String resetPasswordUrl = MessageFormat.format(
-				"{0}{1}/login?action=resetpassword&username={3}&key={4}",
-				rootUrl,
-				customizationPath,
-				UriUtils.encodeQueryParam(userProfile.getLoginId(), "UTF-8"), account.getPasswordResetKey());
-
-		final String mailBody = MessageFormat.format(
-				registeredProperties.getResetPasswordMailBody(),
-				resetPasswordUrl,
-				account.getPasswordResetKey()
-		);
-
-		sendEmail(userProfile, registeredProperties.getResetPasswordMailSubject(),
-				MessageFormat.format(mailBody, resetPasswordUrl));
+		sendEmail(userProfile, registeredProperties.getResetPasswordMailSubject(), MessageFormat.format(
+				registeredProperties.getResetPasswordMailBody(), account.getPasswordResetKey(), rootUrl));
 	}
 
 	@Override
diff --git a/src/main/resources/config/defaults.yml b/src/main/resources/config/defaults.yml
index 0209418cfac7056ea479ad07a9048c920f797eb4..80c46a9cf875d1152e861643150e2059f3387360 100644
--- a/src/main/resources/config/defaults.yml
+++ b/src/main/resources/config/defaults.yml
@@ -107,16 +107,20 @@ arsnova:
         registration-mail-body: |-
           Welcome to ARSnova!
 
-          Please confirm your registration by visiting the following web address:
-          {0}
+          Here is the activation code you need for your first login to ARSnova:
 
-          Afterwards, you can log into ARSnova with your e-mail address and password.
+              {0}
+
+          {1}
         reset-password-mail-subject: ARSnova Password Reset
         reset-password-mail-body: |-
           You requested to reset your password.
 
-          Please follow the link below to set a new password:
-          {0}
+          Here is the confirmation code you need to set a new password:
+
+              {0}
+
+          {1}
 
       # LDAP authentication
       #