diff --git a/uffd/selfservice/templates/newuser.mail.txt b/uffd/selfservice/templates/newuser.mail.txt
new file mode 100644
index 0000000000000000000000000000000000000000..afae818151964b3c1882bf6f5923b68d273dfcd2
--- /dev/null
+++ b/uffd/selfservice/templates/newuser.mail.txt
@@ -0,0 +1,10 @@
+Hi {{ user.displayname }},
+
+welcome to the CCCV infrastructure.
+An account was created for you, visit this url to set your password: {{ url_for('selfservice.token_password', token=token, _external=True) }}
+**Please note this link is only valid for 48h**
+
+If you have no idea why someone would create an account for you to be used for the next CCC event organization, please contact it@cccv.de.
+
+Kind regards,
+uffd
diff --git a/uffd/selfservice/views.py b/uffd/selfservice/views.py
index fae2c27ddecf410b61669c18498fab034402533f..530766794a6a158c99ab9b34ae23eda5e6d893dc 100644
--- a/uffd/selfservice/views.py
+++ b/uffd/selfservice/views.py
@@ -142,7 +142,7 @@ def send_mail_verification(loginname, newmail):
 	msg['Subject'] = 'Mail verification'
 	send_mail(newmail, msg)
 
-def send_passwordreset(loginname):
+def send_passwordreset(loginname, new=False):
 	session = db.session
 	expired_tokens = PasswordToken.query.filter(PasswordToken.created < (datetime.datetime.now() - datetime.timedelta(days=2))).all()
 	duplicate_tokens = PasswordToken.query.filter(PasswordToken.loginname == loginname).all()
@@ -156,8 +156,12 @@ def send_passwordreset(loginname):
 	user = User.from_ldap_dn(loginname_to_dn(loginname))
 
 	msg = EmailMessage()
-	msg.set_content(render_template('passwordreset.mail.txt', user=user, token=token.token))
-	msg['Subject'] = 'Password reset'
+	if new:
+		msg.set_content(render_template('newuser.mail.txt', user=user, token=token.token))
+		msg['Subject'] = 'Welcome to the CCCV infrastructure'
+	else:
+		msg.set_content(render_template('passwordreset.mail.txt', user=user, token=token.token))
+		msg['Subject'] = 'Password reset'
 	send_mail(user.mail, msg)
 
 def send_mail(to_address, msg):
diff --git a/uffd/user/views_user.py b/uffd/user/views_user.py
index 4237b487610100839218466acb5176ef307d6959..14fcb6904469338e0530bbbbb7ef8ef0cb29d924 100644
--- a/uffd/user/views_user.py
+++ b/uffd/user/views_user.py
@@ -88,7 +88,7 @@ def update(uid=False):
 
 	if user.to_ldap(new=is_newuser):
 		if is_newuser:
-			send_passwordreset(user.loginname)
+			send_passwordreset(user.loginname, new=True)
 			flash('User created. We sent the user a password reset link by mail')
 		else:
 			flash('User updated')
@@ -158,7 +158,7 @@ def csvimport():
 			result = newuser.to_ldap(new=True)
 			print(result)
 			if result:
-				send_passwordreset(newuser.loginname)
+				send_passwordreset(newuser.loginname, new=True)
 
 				usergroups = set()
 				for role in Role.get_for_user(newuser).all():