diff --git a/lib/backup_restore/restorer.rb b/lib/backup_restore/restorer.rb
index f382df5ea36..57870cfab95 100644
--- a/lib/backup_restore/restorer.rb
+++ b/lib/backup_restore/restorer.rb
@@ -29,6 +29,7 @@ module BackupRestore
       @client_id = opts[:client_id]
       @filename = opts[:filename]
       @publish_to_message_bus = opts[:publish_to_message_bus] || false
+      @disable_emails = opts.fetch(:disable_emails, true)
 
       ensure_restore_is_enabled
       ensure_no_operation_is_running
@@ -402,9 +403,11 @@ module BackupRestore
       log "Reloading site settings..."
       SiteSetting.refresh!
 
-      log "Disabling outgoing emails for non-staff users..."
-      user = User.find_by_email(@user_info[:email]) || Discourse.system_user
-      SiteSetting.set_and_log(:disable_emails, 'non-staff', user)
+      if @disable_emails
+        log "Disabling outgoing emails for non-staff users..."
+        user = User.find_by_email(@user_info[:email]) || Discourse.system_user
+        SiteSetting.set_and_log(:disable_emails, 'non-staff', user)
+      end
     end
 
     def clear_emoji_cache
diff --git a/script/discourse b/script/discourse
index 205b9be545b..3b830db810c 100755
--- a/script/discourse
+++ b/script/discourse
@@ -106,6 +106,7 @@ class DiscourseCLI < Thor
   end
 
   desc "restore", "Restore a Discourse backup"
+  option :disable_emails, type: :boolean, default: true
   def restore(filename = nil)
 
     if File.exist?('/usr/local/bin/discourse')
@@ -132,7 +133,11 @@ class DiscourseCLI < Thor
 
     begin
       puts "Starting restore: #{filename}"
-      restorer = BackupRestore::Restorer.new(Discourse.system_user.id, filename: filename)
+      restorer = BackupRestore::Restorer.new(
+        Discourse.system_user.id,
+        filename: filename,
+        disable_emails: options[:disable_emails]
+      )
       restorer.run
       puts 'Restore done.'
     rescue BackupRestore::FilenameMissingError