Skip to content

Commit 7f22139

Browse files
fix: add X-Envelope-From header
Adds X-Envelope-From header to incoming SMTP messages containing the original envelope sender address. Cherry-picked from postalserver/postal PR postalserver#3512 Co-authored-by: Mortza81 <Mortza81@users.noreply.github.com> Co-authored-by: openhands <openhands@all-hands.dev>
1 parent ec03195 commit 7f22139

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

app/lib/smtp_server/client.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,10 @@ def data(_data)
419419
received_header = ReceivedHeader.generate(@credential&.server, @helo_name, @ip_address, :smtp)
420420
.force_encoding("BINARY")
421421

422+
envelope_header = "<#{@mail_from}>"
423+
@data << "X-Envelope-From: #{envelope_header}\r\n"
424+
@headers["x-envelope-from"] = [envelope_header]
425+
422426
@data << "Received: #{received_header}\r\n"
423427
@headers["received"] = [received_header]
424428

spec/lib/smtp_server/client/data_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ module SMTPServer
7575
client.handle("This is some content for the message.")
7676
client.handle("It will keep going.")
7777
expect(client.instance_variable_get("@data")).to eq <<~DATA
78+
X-Envelope-From: <test@test.com>\r
7879
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
7980
Subject: Test\r
8081
\r

0 commit comments

Comments
 (0)