mailjet/mailjet-apiv3-php
Official PHP wrapper for the Mailjet API v3. Send transactional email and SMS, manage contacts and campaigns through a simple, PSR-18 compatible client. Requires PHP 8.1+ and installs easily via Composer.
['version' => 'v3.1']), the v3 Email API for contacts/lists/templates/stats, and the v4 SMS API from a single client — so "one vendor for email + SMS" becomes a testable option rather than a slide.Messages[].From/To/Subject/TextPart/HTMLPart). This makes "add email notifications" estimable in days, not quarters, and gives engineering a reference implementation to build against.Resources::$Contact, $ContactManagecontactslists (with addforce / addnoforce semantics), $ContactData, $Template, and $Message unlock concrete backlog items: contact sync from signup, list segmentation, template CRUD without a CMS, and a delivery/engagement reporting dashboard via GET with Limit/Offset/Sort/showSubject filters.IsExcludedFromCampaigns filter and list-action API make suppression, unsubscribe, and exclusion-list behavior a first-class product requirement — relevant to GDPR/CAN-SPAM posture and to whether you need a separate preference-center build.$CALL = false constructor flag lets QA and CI run end-to-end flows without hitting the live API — a small but real enabler for staging parity and for demo environments.force_ip_resolve => 'v4') means outbound email inherits the same observability, retry, and egress controls as the rest of the platform instead of becoming a snowflake.Adopt when:
Look elsewhere or descope when:
Mail facade with SMTP credentials or Mailjet's SMTP relay requires zero custom code and no dependency. Reach for the SDK only when you need contacts, templates, stats, or SMS.MAILJET_* env wiring out of the box. Budget ~1–2 days to wrap it in a provider, config file, and a MailjetClient interface; if that overhead isn't acceptable, a maintained community Laravel wrapper is the pragmatic alternative.composer why / Packagist stats and a spike before making it load-bearing; do not treat the star count as a proxy for reliability.To executives (one paragraph): We can ship transactional and marketing email — password resets, receipts, notifications, campaign sends — on Mailjet's official PHP SDK. It is MIT-licensed, actively released, and maintained by the vendor, so we are not betting on an unmaintained open-source project. The integration cost is small: one dependency plus roughly one to two days of internal wrapping. Critically, it does not lock us in — the SDK sits behind a standards-based HTTP interface, so swapping providers later is a contained change, not a rewrite. Recommendation: adopt for the email channel, behind an internal interface, starting with transactional sends.
To engineering:
MailjetClient interface. Estimate: 1–2 dev-days including tests.force_ip_resolve => 'v4' if we see the documented SSL_ERROR_SYSCALL flakiness.v3.1 for Send, v3 for contacts/templates/stats, v4 for SMS. Pin it in config, don't let it default implicitly.$CALL = false gives us a safe no-op client for CI and local dev — wire it to an env flag.success() / getStatus() / getData() response contract is simple but non-throwing; we must translate non-2xx into our own exception and retry semantics rather than assuming failures surface automatically.Risks and mitigations to state up front:
How can I help you explore Laravel packages today?