From 2a9702ba475b4703540e3edbe9de702b6f4a1dbe Mon Sep 17 00:00:00 2001 From: mackinra Date: Wed, 9 Aug 2017 16:05:40 -0700 Subject: [PATCH] Added option to strip incoming Received headers (#282) --- config/postal.defaults.yml | 1 + lib/postal/smtp_server/client.rb | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/config/postal.defaults.yml b/config/postal.defaults.yml index dd6741f..563886f 100644 --- a/config/postal.defaults.yml +++ b/config/postal.defaults.yml @@ -70,6 +70,7 @@ smtp_server: tls_private_key_path: # Defaults to config/smtp.key proxy_protocol: false log_connect: true + strip_received_headers: false smtp_relays: - diff --git a/lib/postal/smtp_server/client.rb b/lib/postal/smtp_server/client.rb index b227c3b..2b2181e 100644 --- a/lib/postal/smtp_server/client.rb +++ b/lib/postal/smtp_server/client.rb @@ -327,7 +327,9 @@ module Postal @receiving_headers = true received_header_content = "from #{@helo_name} (#{@hostname} [#{@ip_address}]) by #{Postal.config.dns.smtp_server_hostname} with SMTP; #{Time.now.rfc2822.to_s}".force_encoding('BINARY') - @data << "Received: #{received_header_content}\r\n" + if !Postal.config.smtp_server.strip_received_headers? + @data << "Received: #{received_header_content}\r\n" + end @headers['received'] = [received_header_content] handler = Proc.new do |data| @@ -357,6 +359,9 @@ module Postal @header_key, value = data.split(/\:\s*/, 2) @headers[@header_key.downcase] ||= [] @headers[@header_key.downcase] << value + if Postal.config.smtp_server.strip_received_headers? && @header_key.downcase == "received" + next + end end end @data << data