Skip to content

Update master branch to current 6.x code base#757

Merged
Sebbo94BY merged 31 commits into
masterfrom
6.x
May 10, 2026
Merged

Update master branch to current 6.x code base#757
Sebbo94BY merged 31 commits into
masterfrom
6.x

Conversation

@Sebbo94BY

Copy link
Copy Markdown
Collaborator

No description provided.

Sebbo94BY and others added 30 commits May 10, 2026 12:30
Extend unit tests and fix decoding bug
…xt-imap-on-PHP-8.4.x

Add note regarding unbundled ext-imap for PHP 8.4.x and newer
- Fix implicit nullability deprecation
- Extend unit tests

Co-Authored by @Ayesh - many thanks for your pull request!

Refs:
- #722
- https://wiki.php.net/rfc/deprecate-implicitly-nullable-types
- https://php.watch/versions/8.4/implicitly-marking-parameter-type-nullable-deprecated
…cation

Fix implicit nullability deprecation
…auts

Fix wrong German Umlauts conversion
…andling

Add fallback for SEEN SINCE searches and document IMAP behavior
- Expose messageId in IncomingMailHeader
- Expose inReplyTo in IncomingMailHeader
- Expose references in IncomingMailHeader
- Extend unit tests accordingly

Solves #691
…d-reference-headers

Issue 691: Expose missing Message-ID reference headers
- src/PhpImap/Mailbox.php:584 now delegates to the existing src/PhpImap/Imap.php:1072
  implementation, so Mailbox no longer has its own divergent imap_utf7_decode() path.
- Add respective unit tests
…7ImapToUtf8-function

Fix broken decodeStringFromUtf7ImapToUtf8() function
This change should fix all kinds of weird attachment related bugs as
stated by the original author of this change.

- Fix incorrect sub-part index
- Add respective unit tests

Co-authored by @mathielen

Refs:
- #723
…E_TWO

Fix flattenParts() for PARTY_TYPE_TWO
- Implement single case-insensitive disposition check and deduplicate
  all other similar checks.
- Add respective unit tests.

Co-authored by @resource0212

Refs:
- #716
…n-checks

Deduplicate and fix disposition checks
…ilenames

Preserve original attachment filenames
Refactor php-cs-fixer config, apply changes and fix PHPUnit error
The existing boolean `setAttachmentFilenameMode(true|false)` stays intact for
backward compatibility, and attachment downloads now either overwrite as
before or generate `name (1).ext`, `name (2).ext`, while still sanitizing path
separators and respecting the file-path limit (`src/PhpImap/Mailbox.php:1532`,
`src/PhpImap/Mailbox.php:1827`).

Co-authored by @fglueck

Refs:
- #645
…attachment-filenames

Add support for keep original attachment filenames
`src/PhpImap/Imap.php:1149` now accepts proper IMAP-style sequence-set
elements with `*` when `allow_sequence` is enabled, so cases like `*`,
`1:*`, `*:5`, and mixed lists like `2,4:7,9,12:*` pass validation.
…ndling

Fix incorrect IMAP-style sequence-set element handling
The change is in `src/PhpImap/IncomingMailAttachment.php:132: getFileInfo()` now
routes the finfo lookup through a small helper and returns `''` if detection
fails instead of propagating false into a string return type. I also added
`tests/unit/IncomingMailAttachmentTest.php:1` with one regression test for the
failure branch and one sanity check for the normal branch.
…getFileInfo-function

Fix boolean received error in getFileInfo()
`IncomingMailHeader` now parses the raw header block into a generic
`headersByName` map and exposes case-insensitive lookup helpers:
`setHeadersRaw()`, `getHeader()`, `getHeaders()`, and `getAllHeaders()` in
`src/PhpImap/IncomingMailHeader.php:47`. `Mailbox::getMailHeader()` now always
populates that map via `setHeadersRaw()`, so every fetched mail/header gets
arbitrary custom headers automatically in `src/PhpImap/Mailbox.php:1292`. The
stored keys are normalized to lowercase, so `getHeader('Origin-MessageID')` and
`getHeader('origin-messageid')` behave the same.
…m-headers

Issue #700: Automatically expose all custom headers
@Sebbo94BY Sebbo94BY merged commit 5acd0e9 into master May 10, 2026
0 of 9 checks passed
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