Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Resend Php Laravel Package

resend/resend-php

The official PHP client for the Resend email API. Install via Composer on PHP 8.1+, then send email in a few lines with a simple client interface inspired by OpenAI PHP.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Unified Email Infrastructure (now bidirectional): Replace fragmented email services (e.g., Mailgun, SendGrid, or legacy SMTP) with a single, modern API-driven solution. This package enables seamless integration of Resend’s unified email stack (transactional, marketing, templated emails, and — as of v1.17.0 — inbound email via inboxes) into PHP/Laravel applications, reducing vendor lock-in and operational overhead.

  • Roadmap: Customer Communication Platform (CCP) Expansion Accelerate the rollout of Resend’s full API suite (contacts, automations, events, webhooks, usage, and now inboxes) to power:

    • Personalized onboarding flows (e.g., welcome sequences, in-app notifications).
    • Behavioral triggers (e.g., abandoned cart emails, post-purchase follow-ups).
    • Analytics-driven optimizations (track opens, clicks, and bounces via the logs and events APIs).
    • Cost and quota governance (via the usage service — see below).
    • Two-way conversations (via the new inboxes endpoints — see below).
  • New in v1.17.0 — Inbound Email (inboxes endpoints) The SDK now covers receiving email, not just sending it. This is the most strategically significant addition since we started tracking this package, because it turns email from a one-way broadcast channel into an ingestion surface for product data and workflows:

    • Reply handling / two-way email: Route customer replies into the app instead of a shared mailbox nobody owns — e.g., reply-to-thread for support, sales follow-ups, or notification responses.
    • Support & ticketing ingestion: Create tickets or append to conversations directly from inbound messages, with attachments and headers available to the application.
    • AI/agent workflows: Feed inbound mail into summarization, triage, or auto-drafting features — a common ask that previously required a separate inbound-email vendor (Postmark inbound, Mailgun routes, SendGrid Inbound Parse).
    • Product-surface consolidation: One vendor for outbound and inbound reduces the number of webhook verification schemes, API keys, and billing relationships we operate.
    • Caveat for planning: inboxes is brand new (single PR, no prior surface area). Treat it as beta-grade in our own risk model — validate behavior, limits, and webhook payload shape in a spike before committing roadmap dates to it.
  • New in v1.16.0 — Usage & Quota Visibility (usage service) The SDK exposes account-level usage and quota data, which turns email from an opaque line item into a measurable, forecastable product input:

    • Plan-tier and pricing decisions: Pull actual send volume against quota to right-size the Resend plan before renewal, instead of estimating from logs.
    • Budget forecasting: Feed usage data into finance dashboards or a simple scheduled job to project monthly email spend and flag overage risk before it happens.
    • Internal dashboards / admin tooling: Surface remaining quota to support and ops so customer-facing teams know when a tenant or environment is approaching limits.
    • Throttling and graceful degradation: Gate non-critical sends (marketing, digests) when usage nears quota, preserving headroom for transactional email (password resets, receipts).
    • Multi-tenant / per-environment cost attribution: Combine usage data with our own send metadata to attribute email cost by product surface or customer segment.
  • Build vs. Buy: Avoid Custom SDK Development Justify adopting this official-style SDK over building an in-house client by highlighting:

    • Maintenance-free: Actively updated (latest release: v1.17.0), with PHP 8.5+ support — eleven minor releases since we last evaluated it, a strong signal of velocity.
    • Feature parity: Covers 90%+ of Resend’s API (emails, contacts, templates, automations, usage, inboxes, etc.), reducing backlog for custom integrations.
    • Laravel-native: Pre-built examples and fluent syntax align with team workflows (e.g., $resend->emails->send()).
  • Use Cases:

    • Transactional Emails: Password resets, order confirmations, and receipts (replace SwiftMailer/PHPMailer).
    • Marketing Campaigns: Segmented sends via contacts/segments APIs (e.g., "VIP users only").
    • Webhook-Driven Workflows: Sync email events (e.g., delivered, bounced) with CRM/analytics tools using the events API.
    • Template Management: Dynamically render emails with Resend’s React-based templates (e.g., $resend->templates->create()).
    • Quota Monitoring & Cost Control: Scheduled job reads usage data and alerts ops/finance when thresholds are crossed (new in v1.16.0).
    • Inbound Email Ingestion: Accept replies and inbound mail into product workflows — support threads, AI triage, notification responses (new in v1.17.0; validate first).

When to Consider This Package

  • Adopt if:

    • Your stack is PHP 8.1+ (Laravel 9+, Symfony 6+, or custom PHP apps).
    • You need Resend’s API (e.g., migrating from SendGrid/Mailgun or adopting Resend’s free tier).
    • Email cost visibility matters to the business — the usage service gives programmatic access to account usage and quota, which is a concrete win over raw HTTP integrations.
    • You need inbound email and want to avoid adding a second vendor for it — v1.17.0’s inboxes endpoints let one SDK cover send and receive. Run a spike first; this surface is new.
    • Your team prefers fluent, typed SDKs (similar to OpenAI’s PHP client) over raw HTTP requests.
    • You require modern email features: scheduling, batch sends, idempotency keys, webhook verification, or inbound parsing.
  • Look elsewhere if:

    • You’re using PHP < 8.1: The package drops support for older versions.
    • Your primary use case is bulk marketing emails: Resend’s free tier has volume limits (consider a dedicated tool like Mailchimp for high-volume campaigns). Note that usage reports consumption — it does not raise your ceiling.
    • You need advanced SMTP relay: This is an API client, not a mail transport agent (use symfony/mailer for SMTP).
    • You need granular, per-message billing or per-recipient cost breakdowns: usage is account-level only; deeper attribution requires joining it with our own send records.
    • You need mature, battle-tested inbound parsing today (complex MIME edge cases, heavy attachment processing, long-term archival): inboxes is one minor release old — a specialist inbound vendor may still be the safer bet for a launch-critical path.
    • Your team lacks PHP expertise: The package assumes familiarity with Composer and object-oriented PHP.

How to Pitch It (Stakeholders)

For Executives:

*"This package lets us replace fragmented email services with Resend’s unified API—cutting costs, improving deliverability, and enabling smarter customer communication. Two recent releases materially change the business case:

  • v1.17.0 adds inbound email (inboxes) — we can now receive email through the same vendor we send with. That’s the difference between a notification service and a real conversation channel: customer replies land in our product, not in an unmonitored shared inbox, and we can retire a separate inbound-email vendor.
  • v1.16.0 adds usage and quota reporting — we can finally see and forecast our email spend from inside our own application rather than reconciling invoices after the fact.

For example:

  • Reduce tech debt: Eliminate 3rd-party SDKs (e.g., Mailgun’s PHP library) and consolidate under one vendor.
  • Control cost: Read account usage against quota programmatically, alert before overages, and right-size our plan at renewal.
  • Unlock new product surface: Two-way email enables support threading and AI-assisted reply triage without new vendor onboarding.
  • Scale personalization: Use Resend’s contacts and automations APIs to trigger emails based on user behavior (e.g., ‘Welcome’ series for new signups).
  • Future-proof: Resend’s API is modern and actively maintained, with email scheduling, webhook events, usage reporting, and now inbound email built-in.

Implementation is lightweight—composer require resend/resend-php—and our Laravel team can integrate it in days. Recommendation: greenlight outbound integration now; scope inbound as a short technical spike before we put it on the roadmap."*

For Engineering:

*"This is a batteries-included PHP client for Resend’s API, designed for speed and clarity:

  • Fluent syntax: $resend->emails->send() mirrors Laravel’s Eloquent style, reducing onboarding time.
  • Full API coverage: Supports emails, contacts, templates, automations, webhooks, usage (v1.16.0), and now inboxes for inbound email (v1.17.0) — no need to build custom HTTP wrappers.
  • Laravel-ready: Pre-built examples show how to integrate with queues, events, and service containers.
  • Lightweight: ~1MB package with zero dependencies beyond Guzzle (used internally).
  • Note on inboxes: Newly added — one PR, no migration guide, no prior usage in the wild. Before adopting, spike: inbound webhook payload shape, attachment handling, size/rate limits, and how threads are keyed. Wrap it behind our own InboundEmail interface rather than calling the SDK directly from controllers.
  • Note on versioning: We evaluated at v1.4.0; current is v1.17.0. All changes since have been additive (new services, no documented breaking changes), but pin the version in composer.json and re-run the test suite on upgrade. Inbound email is the one area where a minor release could plausibly shift behavior — bump deliberately, not automatically. Proposal: Use this for all new email workflows. For legacy systems, phase in Resend via an EmailService interface (strategy pattern). Wire the usage service into a scheduled command so quota checks are part of standard observability, and put inbound behind an adapter so a vendor swap stays cheap."*

For Data/Analytics Teams:

*"This package unlocks real-time email event tracking via Resend’s events and logs APIs, account usage and quota data via the usage service (v1.16.0), and now inbound message data via inboxes (v1.17.0):

  • Monitor deliverability: Track bounces, opens, and clicks to optimize campaigns.
  • Track consumption: Pull usage/quota on a schedule to feed cost dashboards and forecast spend alongside engagement metrics.
  • Close the loop on conversations: Inbound messages let us measure reply rate and time-to-reply — a far better signal of engagement than opens alone, and a natural input to retention and support-quality models.
  • Sync with analytics: Webhook events (e.g., email.delivered, inbound received) can trigger updates in tools like Mixpanel or Amplitude.
  • A/B testing: Use Resend’s templates API to dynamically render variants and measure performance. Example: Integrate events with our pipeline to correlate email activity with retention, join usage to compute cost-per-engagement by campaign, and derive reply-rate cohorts from inbound messages."*

Change Log Note for Reviewers

v1.17.0 (2026-09-25) adds inboxes endpoints (inbound email) — a net-new capability, not just a version refresh. It expands the decision surface from "email delivery + cost" to "email delivery + cost + two-way conversations," and creates a plausible alternative to a separate inbound-email vendor. No deprecations or breaking changes identified; the only other change is a CI dependency digest bump. The assessment is refreshed to (a) advance the version reference v1.16.0 → v1.17.0 and (b) capture the inbound-email opportunity with an explicit "validate before committing" caveat, since the feature is a single unreleased-in-the-wild addition.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style