diff --git a/h/routes.py b/h/routes.py
index a53154761d6..2bb4a831979 100644
--- a/h/routes.py
+++ b/h/routes.py
@@ -54,6 +54,10 @@ def includeme(config): # noqa: PLR0915
)
config.add_route("admin.mailer", "/admin/mailer")
config.add_route("admin.mailer_test", "/admin/mailer/test")
+ config.add_route(
+ "admin.mailer.preview.mention_notification",
+ "/admin/mailer/preview/mention-notification",
+ )
config.add_route("admin.nipsa", "/admin/nipsa")
config.add_route("admin.oauthclients", "/admin/oauthclients")
config.add_route("admin.oauthclients_create", "/admin/oauthclients/new")
diff --git a/h/views/admin/mailer.py b/h/views/admin/mailer.py
index 3754e120393..df04af9c07b 100644
--- a/h/views/admin/mailer.py
+++ b/h/views/admin/mailer.py
@@ -1,3 +1,5 @@
+from datetime import datetime
+
from pyramid.httpexceptions import HTTPSeeOther
from pyramid.view import view_config
@@ -33,3 +35,24 @@ def mailer_test(request):
result = mailer.send.delay(*mail)
index = request.route_path("admin.mailer", _query={"taskid": result.task_id})
return HTTPSeeOther(location=index)
+
+
+@view_config(
+ route_name="admin.mailer.preview.mention_notification",
+ request_method="GET",
+ permission=Permission.AdminPage.LOW_RISK,
+ renderer="h:templates/emails/mention_notification.html.jinja2",
+)
+def preview_mention_notification(request):
+ return {
+ "user_url": "https://example.com/user", # TODO
+ "user_display_name": "Jane Doe",
+ "annotation_url": "https://example.com/bouncer", # TODO Bouncer link -> annotation deeplink
+ "document_title": "The title",
+ "document_url": "https://example.com/document", # TODO Document public URL
+ "annotation": {
+ "updated": datetime.now(),
+ "text": 'Hello @user, how are you?',
+ "text_rendered": 'Hello @user, how are you?',
+ },
+ }