diff --git a/app/jobs/scheduled/clean_up_email_logs.rb b/app/jobs/scheduled/clean_up_email_logs.rb
new file mode 100644
index 000000000..122546289
--- /dev/null
+++ b/app/jobs/scheduled/clean_up_email_logs.rb
@@ -0,0 +1,18 @@
+module Jobs
+
+  class CleanUpEmailLogs < Jobs::Scheduled
+    every 1.day
+
+    def execute(args)
+      return if SiteSetting.suppress_email_logs_after_days <= 0
+
+      threshold = SiteSetting.suppress_email_logs_after_days.days.ago
+
+      EmailLog.where(reply_key: nil)
+              .where("created_at < ?", threshold)
+              .destroy_all
+    end
+
+  end
+
+end
diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml
index b626685be..8de10a64f 100644
--- a/config/locales/server.en.yml
+++ b/config/locales/server.en.yml
@@ -1116,6 +1116,8 @@ en:
     unsubscribe_via_email: "Allow users to unsubscribe from emails by sending an email with 'unsubscribe' in the subject or body"
     unsubscribe_via_email_footer: "Attach an unsubscribe link to the footer of sent emails"
 
+    suppress_email_logs_after_days: "Delete email logs after (N) days. 0 to keep indefinitely"
+
     pop3_polling_enabled: "Poll via POP3 for email replies."
     pop3_polling_ssl: "Use SSL while connecting to the POP3 server. (Recommended)"
     pop3_polling_period_mins: "The period in minutes between checking the POP3 account for email. NOTE: requires restart."
diff --git a/config/site_settings.yml b/config/site_settings.yml
index 668bd3a8b..24853e396 100644
--- a/config/site_settings.yml
+++ b/config/site_settings.yml
@@ -539,6 +539,9 @@ email:
     default: true
   unsubscribe_via_email_footer:
     default: false
+  suppress_email_logs_after_days:
+    default: 365
+    min: 0
 
 files:
   max_image_size_kb: 3072
diff --git a/spec/jobs/clean_up_email_logs_spec.rb b/spec/jobs/clean_up_email_logs_spec.rb
new file mode 100644
index 000000000..4edf0f7ca
--- /dev/null
+++ b/spec/jobs/clean_up_email_logs_spec.rb
@@ -0,0 +1,23 @@
+require 'rails_helper'
+
+describe Jobs::CleanUpEmailLogs do
+
+  before do
+    Fabricate(:email_log, created_at: 2.years.ago, reply_key: "something")
+    Fabricate(:email_log, created_at: 2.years.ago)
+    Fabricate(:email_log, created_at: 2.weeks.ago)
+    Fabricate(:email_log, created_at: 2.days.ago)
+  end
+
+  it "removes old email logs without a reply_key" do
+    Jobs::CleanUpEmailLogs.new.execute({})
+    expect(EmailLog.count).to eq(3)
+  end
+
+  it "does not remove old email logs when suppress_email_logs_after_days is 0" do
+    SiteSetting.suppress_email_logs_after_days = 0
+    Jobs::CleanUpEmailLogs.new.execute({})
+    expect(EmailLog.count).to eq(4)
+  end
+
+end