diff --git a/beat/web/accounts/api.py b/beat/web/accounts/api.py
index b8717751b106010284db4e9db82406913fa90015..d136fc630faf6ad285a34950f0be84cb806fc7bf 100644
--- a/beat/web/accounts/api.py
+++ b/beat/web/accounts/api.py
@@ -26,7 +26,6 @@
 ###############################################################################
 
 import datetime
-from urllib.parse import urlparse
 
 from django.conf import settings
 from django.contrib.auth.models import User
@@ -42,7 +41,6 @@ from ..ui.registration.models import RegistrationProfile
 from ..utils import mail
 from .models import Profile
 from .models import SupervisionTrack
-from .models import TemporaryUrl
 from .permissions import IsAuthorAndNotSupervisor
 from .permissions import IsAuthorAndPossiblySupervisor
 from .permissions import IsSuperUser
@@ -52,6 +50,7 @@ from .serializers import SupervisionTrackUpdateSerializer
 from .serializers import UserSerializer
 from .views import accept_supervisee
 from .views import emergency_rejection
+from .views import inform_supervisor_new_supervisee_request
 from .views import perform_revalidation
 from .views import supervisee_rejection
 
@@ -203,20 +202,15 @@ class SupervisorRemoveSuperviseeView(BaseUpdateSupervisionTrackView):
                         }
                         return BadRequestResponse(result)
 
-        parsed_url = urlparse(settings.URL_PREFIX)
-        server_address = "%s://%s" % (parsed_url.scheme, parsed_url.hostname)
-
         if not supervisee.profile.is_supervisor:
             context = {
                 "supervisor": supervisiontrack.supervisor,
                 "supervisee": supervisee,
-                "prefix": server_address,
             }
         else:
             context = {
                 "supervisor": request.user,
                 "supervisee": supervisee,
-                "prefix": server_address,
             }
 
         if supervisee.profile.status == Profile.WAITINGVALIDATION:
@@ -314,7 +308,6 @@ class SupervisorRemoveSuperviseeView(BaseUpdateSupervisionTrackView):
                         context = {
                             "supervisor": supervisee,
                             "supervisee": track_supervisee,
-                            "prefix": server_address,
                         }
 
                         mail.send_email(
@@ -344,7 +337,6 @@ class SupervisorRemoveSuperviseeView(BaseUpdateSupervisionTrackView):
                         context = {
                             "supervisor": track_supervisor,
                             "supervisee": track_supervisee,
-                            "prefix": server_address,
                         }
 
                         # New user account waiting validation, so delete this account and inform by email the user
@@ -421,9 +413,6 @@ class SuperviseeAddSupervisorView(BaseCreateSupervisionTrackViewSupervisee):
             }
             return BadRequestResponse(result)
 
-        parsed_url = urlparse(settings.URL_PREFIX)
-        server_address = "%s://%s" % (parsed_url.scheme, parsed_url.hostname)
-
         supervisee = request.user
         if supervisee.profile.supervision_key is not None:
             # There's a key check if there's a valid track
@@ -451,7 +440,6 @@ class SuperviseeAddSupervisorView(BaseCreateSupervisionTrackViewSupervisee):
                     context = {
                         "supervisor": supervisiontrack.supervisor,
                         "supervisee": supervisiontrack.supervisee,
-                        "prefix": server_address,
                     }
 
                     mail.send_email(
@@ -518,21 +506,8 @@ class SuperviseeAddSupervisorView(BaseCreateSupervisionTrackViewSupervisee):
         supervisee.save()
 
         # Inform by email the supervisor that he has a new supervisee request
-        temp_url = TemporaryUrl.objects.create_temporary_url(
-            TemporaryUrl.VALIDATION, supervisiontrack
-        )
-        context = {
-            "supervisor": supervisor,
-            "supervisee": supervisee,
-            "prefix": server_address,
-            "temp_url": temp_url.url_hash,
-        }
-
-        mail.send_email(
-            "registration/mail.supervisor_validation.subject.txt",
-            "registration/mail.supervisor_validation_supervisee_add_request.message.txt",
-            context,
-            [supervisor.email],
+        inform_supervisor_new_supervisee_request(
+            request, supervisiontrack, supervisor, supervisee
         )
 
         return Response(status=status.HTTP_204_NO_CONTENT)
@@ -673,9 +648,6 @@ class RemoveSupervisorModeView(BaseUpdateSupervisorModeView):
                 | Q(supervisee__profile__status=Profile.WAITINGVALIDATION)
             )
 
-            parsed_url = urlparse(settings.URL_PREFIX)
-            server_address = "%s://%s" % (parsed_url.scheme, parsed_url.hostname)
-
             if supervisiontracks.count() > 0:
                 for track in supervisiontracks:
                     track.expiration_date = now
@@ -700,7 +672,6 @@ class RemoveSupervisorModeView(BaseUpdateSupervisorModeView):
                     context = {
                         "supervisor": user,
                         "supervisee": track_supervisee,
-                        "prefix": server_address,
                     }
 
                     mail.send_email(
@@ -730,7 +701,6 @@ class RemoveSupervisorModeView(BaseUpdateSupervisorModeView):
                     context = {
                         "supervisor": track_supervisor,
                         "supervisee": track_supervisee,
-                        "prefix": server_address,
                     }
 
                     # New user account waiting validation, so delete this account and inform by email the user
@@ -895,14 +865,9 @@ class UpdateSupervisorCandidateView(BaseUpdateSupervisorCandidateView):
             supervisee.is_active = True
             supervisee.save()
 
-            parsed_url = urlparse(settings.URL_PREFIX)
-            server_address = "%s://%s" % (parsed_url.scheme, parsed_url.hostname)
-
             # Inform by email the new supervisor
             context = {
-                "supervisor": request.user,
                 "supervisee": supervisee,
-                "prefix": server_address,
             }
 
             mail.send_email(
diff --git a/beat/web/accounts/views.py b/beat/web/accounts/views.py
index bc835b04f72497ce3ce38f82c6dc7f075e9a1d7b..67e8dfb695f801216bd5db8f987d39a81bf48c80 100644
--- a/beat/web/accounts/views.py
+++ b/beat/web/accounts/views.py
@@ -412,3 +412,32 @@ def load_temporary_url_rejection(request, hash_url):
     return generate_load_response(
         request, temp_url, "accounts/url_rejection_failed.html", {}
     )
+
+
+def inform_supervisor_new_supervisee_request(
+    request, supervisiontrack, supervisor, supervisee
+):
+    # Inform by email the supervisor that he has a new supervisee request
+    temp_url = TemporaryUrl.objects.create_temporary_url(
+        TemporaryUrl.VALIDATION, supervisiontrack
+    )
+
+    supervisor_validation_url = request.build_absolute_uri(
+        reverse("accounts:temp_url_validation", kwargs={"hash_url": temp_url.url_hash},)
+    )
+    contact_url = request.build_absolute_uri(reverse("contact"))
+    context = {
+        "supervisor": supervisor,
+        "supervisee": supervisee,
+        "supervisor_validation_url": supervisor_validation_url,
+        "contact_url": contact_url,
+    }
+
+    mail.send_email(
+        "registration/mail.supervisor_validation.subject.txt",
+        "registration/mail.supervisor_validation_supervisee_add_request.message.txt",
+        context,
+        [supervisor.email],
+    )
+
+    return context
diff --git a/beat/web/ui/registration/views.py b/beat/web/ui/registration/views.py
index 2d0fad0a667abaeb175e3079fd33fd76d9dfb8be..95547a93a4b1a496175be00843f81dde413ea80d 100644
--- a/beat/web/ui/registration/views.py
+++ b/beat/web/ui/registration/views.py
@@ -205,7 +205,6 @@ def register(
         "form_supervisor": form_supervisor,
         "supervisor_form_active": supervisor_form_active,
         "documentation_link": settings.DOCUMENTATION_LINK,
-        "url_prefix": settings.URL_PREFIX,
     }
 
     if extra_context is not None:
diff --git a/beat/web/ui/views.py b/beat/web/ui/views.py
index de52a144687310ec25f5a580819efc19cf2fb701..a868943cffe498f72501225a77d827828827fb76 100755
--- a/beat/web/ui/views.py
+++ b/beat/web/ui/views.py
@@ -48,7 +48,7 @@ from rest_framework.authtoken.models import Token
 from .. import __version__
 from ..accounts.models import Profile
 from ..accounts.models import SupervisionTrack
-from ..accounts.models import TemporaryUrl
+from ..accounts.views import inform_supervisor_new_supervisee_request
 from ..common.models import Shareable
 from ..utils import mail
 from .registration.forms import BlockedUserRevalidationForm
@@ -150,31 +150,8 @@ def blocked_user_reactivation(request):
                                 supervisee.save()
 
                                 # Inform by email the supervisor that he has a new supervisee request
-                                temp_url = TemporaryUrl.objects.create_temporary_url(
-                                    TemporaryUrl.VALIDATION, supervisiontrack
-                                )
-
-                                supervisor_validation_url = request.build_absolute_uri(
-                                    reverse(
-                                        "accounts:temp_url_validation",
-                                        kwargs={"hash_url": temp_url.url_hash},
-                                    )
-                                )
-                                contact_url = request.build_absolute_uri(
-                                    reverse("contact")
-                                )
-                                context = {
-                                    "supervisor": supervisor,
-                                    "supervisee": supervisee,
-                                    "supervisor_validation_url": supervisor_validation_url,
-                                    "contact_url": contact_url,
-                                }
-
-                                mail.send_email(
-                                    "registration/mail.supervisor_validation.subject.txt",
-                                    "registration/mail.supervisor_validation_supervisee_add_request.message.txt",
-                                    context,
-                                    [supervisor.email],
+                                context = inform_supervisor_new_supervisee_request(
+                                    request, supervisiontrack, supervisor, supervisee
                                 )
 
                                 # inform the supervisee of his request