mail: Rückläufer aus dem Bounce-Postfach lesen (Roadmap 1b.6, Schritt 3)
webklex/laravel-imap als Transport, eigener DSN-Parser nach RFC 3464 auf der rohen Nachricht: Final-Recipient, Action, Status, Diagnostic-Code und unser X-Pk-Ref aus der Original-Nachricht. Maßgeblich ist Action — Zustellbestätigungen sperren niemanden, Freitext-Rückläufer wandern nach Unparsed vor einen Menschen, Abwesenheitsnotizen nach Ignored. mail:fetch-bounces alle zehn Minuten; ohne Konto tut es nichts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0a658bb34b
commit
e80006589c
16 changed files with 1039 additions and 2 deletions
53
tests/Fixtures/bounces/hard-5.1.1.eml
Normal file
53
tests/Fixtures/bounces/hard-5.1.1.eml
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
Return-Path: <>
|
||||
Date: Tue, 15 Sep 2026 09:12:33 +0200
|
||||
From: Mail Delivery System <MAILER-DAEMON@mx.kasserver.com>
|
||||
To: bounce@pressekonto.com
|
||||
Subject: Undelivered Mail Returned to Sender
|
||||
Message-ID: <20260915071233.ABC123@mx.kasserver.com>
|
||||
Content-Type: multipart/report; report-type=delivery-status;
|
||||
boundary="ABC123.1758112353/mx.kasserver.com"
|
||||
|
||||
This is a MIME-encapsulated message.
|
||||
|
||||
--ABC123.1758112353/mx.kasserver.com
|
||||
Content-Description: Notification
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
|
||||
This is the mail system at host mx.kasserver.com.
|
||||
|
||||
I'm sorry to have to inform you that your message could not
|
||||
be delivered to one or more recipients.
|
||||
|
||||
<Presse@Alte-Firma.example>: host mail.alte-firma.example[192.0.2.10] said:
|
||||
550 5.1.1 <presse@alte-firma.example>: Recipient address rejected: User
|
||||
unknown in virtual mailbox table (in reply to RCPT TO command)
|
||||
|
||||
--ABC123.1758112353/mx.kasserver.com
|
||||
Content-Description: Delivery report
|
||||
Content-Type: message/delivery-status
|
||||
|
||||
Reporting-MTA: dns; mx.kasserver.com
|
||||
X-Postfix-Queue-ID: 4XyZ12
|
||||
X-Postfix-Sender: rfc822; bounce@pressekonto.com
|
||||
Arrival-Date: Tue, 15 Sep 2026 09:12:30 +0200
|
||||
|
||||
Final-Recipient: rfc822; Presse@Alte-Firma.example
|
||||
Original-Recipient: rfc822;presse@alte-firma.example
|
||||
Action: failed
|
||||
Status: 5.1.1
|
||||
Remote-MTA: dns; mail.alte-firma.example
|
||||
Diagnostic-Code: smtp; 550 5.1.1 <presse@alte-firma.example>: Recipient
|
||||
address rejected: User unknown in virtual mailbox table
|
||||
|
||||
--ABC123.1758112353/mx.kasserver.com
|
||||
Content-Description: Undelivered Message Headers
|
||||
Content-Type: text/rfc822-headers
|
||||
|
||||
Return-Path: <bounce@pressekonto.com>
|
||||
From: pressekonto <service@pressekonto.com>
|
||||
To: presse@alte-firma.example
|
||||
Subject: Ihre Pressemitteilung wurde veroeffentlicht
|
||||
X-Pk-Ref: pm:4711:company:815
|
||||
Message-ID: <orig-1@pressekonto.com>
|
||||
|
||||
--ABC123.1758112353/mx.kasserver.com--
|
||||
Loading…
Add table
Add a link
Reference in a new issue