SwiftMailer/Mail components but offers a Laminas-compatible alternative for teams already invested in the Laminas ecosystem.symfony/mime (via illuminate/mail) is the de facto standard, this fork could serve as a drop-in replacement for projects using Laminas packages (e.g., laminas/laminas-mail) or needing PHP 8.4+ compatibility without migrating to Symfony’s stack.laminas-mime, reducing refactoring risk for existing Laminas-based codebases.symfony/mime (if both are loaded). Requires explicit dependency resolution (e.g., replace in composer.json).Laminas\Mime → Oro\Mime) or isolate the package in a micro-service or legacy module.MIME\MessageFactory).Swift_Message compatibility).symfony/mime (already bundled in Laravel) or zbateson/mail-mime-parser?phpunit) need updates?Mail facade (if configured to use Laminas parsers).MimeMessage helper like Symfony’s Mime\Email).MIME::parse($rawEmail)).laminas/laminas-mail or other Laminas packages (e.g., laminas/laminas-psr7-middleware).Laminas\Mime\Message).laminas/laminas-mime with oroinc/laminas-mime in a non-production environment.Mail::raw() (for MIME parsing).config/mail.php to use Laminas parsers).mime if fully migrated.composer.json with replace to avoid conflicts:
"repositories": [
{ "type": "vcs", "url": "https://github.com/oroinc/laminas-mime" }
],
"require": {
"oroinc/laminas-mime": "^1.0"
},
"replace": {
"laminas/laminas-mime": "oroinc/laminas-mime"
}
// app/Providers/MimeServiceProvider.php
public function register() {
$this->app->singleton('mime.message.factory', function () {
return new \Laminas\Mime\MessageFactory();
});
}
// app/Helpers/MimeHelper.php
class MimeHelper {
public static function parse(string $raw): \Laminas\Mime\Message {
return \Laminas\Mime\MessageFactory::fromString($raw);
}
}
laminas-mime if critical.symfony/mime or zbateson/mail-mime-parser within 12–18 months.Laminas\Mime\Part).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| PHP 8.4 regression | Parsing failures, crashes | Rollback to PHP 8.3 or patch manually. |
| Dependency conflict with Symfony | Class collisions, autoloader errors | Use namespace aliases or isolate the package. |
| Malformed MIME input | Application errors, data corruption | Validate input with filter_var($raw, FILTER_VALIDATE_EMAIL) or a custom sanitizer. |
| Fork abandonment | Security vulnerabilities | Migrate to symfony/mime or fork internally. |
| Large attachment processing | Memory exhaustion | Stream parts using ` |
How can I help you explore Laravel packages today?