diff --git a/app/lib/smtp_server/client.rb b/app/lib/smtp_server/client.rb index 2a70667c9..bed708d4f 100644 --- a/app/lib/smtp_server/client.rb +++ b/app/lib/smtp_server/client.rb @@ -419,6 +419,10 @@ def data(_data) received_header = ReceivedHeader.generate(@credential&.server, @helo_name, @ip_address, :smtp) .force_encoding("BINARY") + envelope_header = "<#{@mail_from}>" + @data << "X-Envelope-From: #{envelope_header}\r\n" + @headers["x-envelope-from"] = [envelope_header] + @data << "Received: #{received_header}\r\n" @headers["received"] = [received_header] diff --git a/spec/lib/smtp_server/client/data_spec.rb b/spec/lib/smtp_server/client/data_spec.rb index f7d305ef7..97abd8768 100644 --- a/spec/lib/smtp_server/client/data_spec.rb +++ b/spec/lib/smtp_server/client/data_spec.rb @@ -75,6 +75,7 @@ module SMTPServer client.handle("This is some content for the message.") client.handle("It will keep going.") expect(client.instance_variable_get("@data")).to eq <<~DATA + X-Envelope-From: \r Received: from test.example.com (1.2.3.4 [1.2.3.4]) by #{Postal::Config.postal.smtp_hostname} with SMTP; #{Time.now.utc.rfc2822}\r Subject: Test\r \r