diff --git a/cmd/rednerd/cmd/serve.go b/cmd/rednerd/cmd/serve.go
index 8871b0bbb6771aeb6d1096b8da5bac8e77f0d306_Y21kL3JlZG5lcmQvY21kL3NlcnZlLmdv..f97d71bec55db08d63b0fcd36c3b7f768faa3c91_Y21kL3JlZG5lcmQvY21kL3NlcnZlLmdv 100644
--- a/cmd/rednerd/cmd/serve.go
+++ b/cmd/rednerd/cmd/serve.go
@@ -54,6 +54,8 @@
 	options *Options
 
 	TokenOptions *auth.TokenOptions `no-flag:"t"`
+
+	DisableMailSender bool `long:"disable-mail-sender" description:"disable the mail sender routine"`
 }
 
 // Execute setup a server and runs it.
@@ -151,6 +153,10 @@
 	cmd.Server.SetLog(log)
 	cmd.Server.ConfigureAPI()
 
-	mailSenderContext, stopMailSender := context.WithCancel(context.Background())
-	mailSenderContext = log.WithContext(mailSenderContext)
+	if !cmd.DisableMailSender {
+		mailSenderContext, stopMailSender := context.WithCancel(context.Background())
+		mailSenderContext = log.WithContext(mailSenderContext)
+
+		if err := MailSender.Start(mailSenderContext, cmd.options.Dsn, db); err != nil {
+			stopMailSender()
 
@@ -156,4 +162,4 @@
 
-	if err := MailSender.Start(mailSenderContext, cmd.options.Dsn, db); err != nil {
-		stopMailSender()
+			return err
+		}
 
@@ -159,5 +165,7 @@
 
-		return err
+		defer func() {
+			stopMailSender()
+		}()
 	}
 
 	defer func() {
@@ -161,8 +169,6 @@
 	}
 
 	defer func() {
-		stopMailSender()
-
 		if err := cmd.Server.Shutdown(); err != nil {
 			log.Err(err).Msg("error shutting down the server")
 		}