Repository navigation
Fetch messages whose IMAP reply lines exceed 8 KiB - #52
Merged
Merged
Conversation
swift-nio-imap 0.4.0 caps a reply line it has not finished decoding at 8 KiB. The BODYSTRUCTURE of a mail with 74 attachments is longer, so every list, search and fetch that touched it failed with PayloadTooLargeError, and one such mail in the INBOX broke `post list` outright. SwiftMail (Cocoanetics/SwiftMail#253) pins swift-nio-imap to main for apple/swift-nio-imap#849 and hands IMAPClientHandler its 1 MB responseBufferLimit. A revision-pinned dependency can't be resolved by version, so Post pins SwiftMail by revision too. That swift-nio-imap declares macOS 15, which becomes Post's floor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SwiftMail 1.16.0 is the merge commit Post was already pinned to, so only the comment changes. SwiftText 2.4.0 adds alert boxes for every output format and readable zip entry permissions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
odrobnik
added a commit
that referenced
this pull request
Oct 9, 2026
Outlook names a file attached from a folder after its Windows path and doesn't escape the backslashes, so the 74-attachment mail behind #52 listed zpo-berufung\reference\akt.md as zpo-berufungreferenceakt.md and two LIESMICH.md files in different folders looked the same. SwiftMail #254 keeps those backslashes for both .eml files and IMAP. It is now part of the SwiftMail 1.16.0 release, so the pin moves to its commit. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
post list,post searchandpost fetchfailed on the drobnik INBOX with:The cause is one mail with 74 attachments. Its IMAP BODYSTRUCTURE is a single reply line longer than 8 KiB, and swift-nio-imap 0.4.0 hardcodes
IMAPClientHandler's line buffer at exactly that, whatever SwiftMail'sresponseBufferLimitsays. Any command whose result included that mail failed.post fetch <uid> --emlstill worked, because a body is a literal, not a line.Change
c3b7bc3, Accept response lines longer than 8 KiB SwiftMail#253). It pins swift-nio-imap to main for Allow configuring IMAP client line buffer size apple/swift-nio-imap#849 (configurable line buffer, merged but not yet released) and passes the 1 MBresponseBufferLimittoIMAPClientHandler. SwiftPM can't resolve a version requirement on a package with a revision-pinned dependency, so this is a revision pin too. It goes back to.upToNextMajoronce swift-nio-imap tags a release with #849.Verified
swift test: all pass (63 + 8 + 5 + 2; 4 skipped as before).post search --server drobnik --from zupancic --since 2026-09-01,post list --server drobnik --limit 5andpost fetch 21835 --server drobnik(the 74-attachment mail) all return results instead of the error.🤖 Generated with Claude Code