Changelog for Inbound Email SDK

January 25, 2025
SDKMajor ReleaseUnified API

Unified Email API

We’ve introduced a major restructuring of the SDK with a unified email API that consolidates all email operations under inbound.email.* with organized namespaces.

🚀 New Unified Structure

Received Email Operations
  • All inbound email operations moved to email.received.*
  • inbound.email.received.list() - List received emails
  • inbound.email.received.get(id) - Get received email details
  • inbound.email.received.markRead(id) - Mark as read
  • inbound.email.received.archive(id) - Archive email
  • inbound.email.received.reply(params) - Reply to received email
Sent Email Operations
  • Organized sent email operations under email.sent.*
  • inbound.email.sent.get(id) - Get sent email details
  • inbound.email.sent.reply(id, params) - Reply to sent email
  • inbound.email.sent.listScheduled() - List scheduled emails
  • inbound.email.sent.getScheduled(id) - Get scheduled email
  • inbound.email.sent.cancel(id) - Cancel scheduled email
Universal Email Access (NEW!)
  • inbound.email.get(id) - Get ANY email (received or sent)
  • Automatically tries received emails first, then sent emails
  • Solves the common “email not found” issue when you don’t know the email type

⚠️ Deprecation Notices

mail. Methods Deprecated*
  • All inbound.mail.* methods are deprecated but still work
  • Show console warnings directing to email.received.* equivalents
  • Will be removed in a future version
Top-level email. Methods*
  • Some methods moved to organized namespaces
  • email.listScheduled()email.sent.listScheduled()
  • email.getScheduled()email.sent.getScheduled()
  • email.cancel()email.sent.cancel()

✨ Key Benefits

  • Unified Experience: One API for all email operations
  • Type Safety: Better TypeScript support with specific types
  • Universal Access: Get any email without knowing its type
  • Organized Structure: Clear separation between received and sent emails
  • Backward Compatible: All existing code continues to work

Migration Examples

// ❌ OLD (deprecated but still works)
const emails = await inbound.mail.list()
const email = await inbound.mail.get('email_id')

// ✅ NEW (recommended)
const emails = await inbound.email.received.list()
const email = await inbound.email.received.get('email_id')

// 🔄 UNIVERSAL (works for any email type)
const email = await inbound.email.get('any_email_id')

Seamless Upgrade

  • Existing code works without changes
  • Console warnings guide migration
  • Documentation updated with examples
  • Migration is optional but recommended
January 23, 2025
SDKBreaking Changes

SDK v3.0.0 - Major Release

We’ve released a major update to the @inboundemail/sdk that aligns with modern JavaScript SDK patterns and improves developer experience.

🚨 Breaking Changes

Simplified Constructor
  • Constructor now matches Resend SDK pattern for consistency
  • Removed configuration object in favor of direct parameters
  • Removed defaultReplyFrom - explicit from now required for all replies
Resend-Compatible Field Names
  • Changed reply_toreplyTo
  • Changed content_typecontentType
  • Changed include_originalincludeOriginal
Enhanced Reply Method
  • No longer accepts simple string messages
  • Requires explicit from parameter for better control
  • Improved type safety and validation

✨ New Features

  • Tags Support: Added Resend-compatible email tagging
  • Enhanced TypeScript: Improved type definitions and IDE support
  • Better Error Handling: More descriptive error messages

🔧 Improvements

  • Backward Compatibility: API endpoints support both snake_case and camelCase
  • Documentation: Comprehensive migration guide included
  • Examples: Updated all code examples to new patterns

Migration Guide

// Before (v2.x)
const inbound = new Inbound({
  apiKey: process.env.INBOUND_API_KEY!,
  defaultReplyFrom: 'support@domain.com'
})

// After (v3.x)
const inbound = new Inbound(process.env.INBOUND_API_KEY!)
View full migration guide | Install SDK
January 2025
PlatformImprovements

Platform Improvements

Email Processing

  • Enhanced email parsing reliability
  • Improved webhook delivery performance
  • Better handling of complex email structures

API Enhancements

  • Added support for both snake_case and camelCase field names
  • Improved error responses with actionable messages
  • Enhanced rate limiting for better stability

Documentation

  • Updated API reference with latest examples
  • Improved webhook integration guides
  • Added more SDK usage patterns