Skip to content

feat/modern binary catenate - #63

Merged
ralflang merged 3 commits into
FRAMEWORK_6_0from
feat/modern-binary-catenate
Nov 3, 2026
Merged

ralflang merged 3 commits into
FRAMEWORK_6_0from
feat/modern-binary-catenate

Conversation

@ralflang

@ralflang ralflang commented Nov 3, 2026

Copy link
Copy Markdown
Member
  • feat(append): Handle the binary: true & catenate scenario according to spec
  • test: Add Binary Catenate correctness tests
  • docs(append): Add upgrading instructions for binary and catenate handling

…o spec

- Validates the BINARY capability (batch-wide, before any send)
- Rejects a url part combined with binary (CapabilityNotSupportedException (RFC 4469).
- Concatenates the TEXT parts locally into one php://temp stream and sends it as a single literal8 via ImapWireStream(forceBinary: true)
- Updated the docblock

This is informed by lib/ PR #58
@what-the-diff

what-the-diff Bot commented Nov 3, 2026

Copy link
Copy Markdown

PR Summary

  • Improves binary message appending to IMAP servers
    When binary APPEND is explicitly enabled, message text parts are combined and sent as a single binary payload. The client now checks that the server supports binary messages and rejects unsupported URL-based parts.

  • Provides a migration guide
    Documents what changed in APPEND behavior, including message data handling and the updated format for combining message parts.

  • Adds coverage for the new behavior
    Tests verify binary message assembly and confirm that unsupported server capabilities or URL-based parts are handled correctly.

@ralflang
ralflang merged commit 721e9df into FRAMEWORK_6_0 Nov 3, 2026
1 check failed
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown

🔍 CI Results

Overall: ❌ 12/12 lanes failed

TL;DR: ❌ Quality issues: PHPStan: 7 unique errors in 12 lanes; PHP-CS-Fixer: 18 files.

Summary by PHP Version

PHP dev stable
8.1 ❌ ❌
8.2 ❌ ❌
8.3 ❌ ❌
8.4 ❌ ❌
8.5 ❌ ❌
8.6 ❌ ❌

Quality Metrics

  • PHPUnit: did not run (12 lanes exited non-zero with no test output) ❌
  • PHPStan: 7 unique errors in 12 lanes ⚠️
  • PHP-CS-Fixer: 18 unique files with issues (of 378 checked) ⚠️
❌ Failed Lanes

php8.1-dev

  • PHPUnit: 0 failures, 0 errors
  • PHPStan: 7 errors found

php8.1-stable

  • PHPUnit: 0 failures, 0 errors
  • PHPStan: 7 errors found

php8.2-dev

  • PHPUnit: 0 failures, 0 errors
  • PHPStan: 7 errors found

php8.2-stable

  • PHPUnit: 0 failures, 0 errors
  • PHPStan: 7 errors found

php8.3-dev

  • PHPUnit: 0 failures, 0 errors
  • PHPStan: 7 errors found

php8.3-stable

  • PHPUnit: 0 failures, 0 errors
  • PHPStan: 7 errors found

php8.4-dev

  • PHPStan: 7 errors found
  • PHP-CS-Fixer: 18 files with issues

php8.4-stable

  • PHPStan: 7 errors found

php8.5-dev

  • PHPStan: 7 errors found

php8.5-stable

  • PHPStan: 7 errors found

php8.6-dev

  • PHPStan: 7 errors found

php8.6-stable

  • PHPStan: 7 errors found

CI powered by horde-components • View full results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant