Wijzigingslog

Everything we've shipped to production

March 19, 2026

Unify footer across layouts and add visible breadcrumb navigation

Resolve sitemap lastmod from DB and files

Updated author name from Nikhil Mehta to Nikhil Rao

Tighten changelog filter to exclude infrastructure commits

March 18, 2026

Fixed key-facts component alignment on competitor pages

Added citation system for AI search engine visibility

Added FAQPage schema, FAQ sections, and BraveBot crawler access

Added LLMS generation, i18n, integration steps

Removed stale statefulApi() and tighten broadcast auth tests

Fixed broadcast auth: use web+session auth instead of API+Sanctum

Fixed Echo client to connect to Reverb instead of Pusher cloud

Enabled session broadcast auth and fix listeners

Added light/dark mode toggle to email preview panel

Sync plan feature tables with billing config and fix stale marketing claims

Added developer docs, OpenAPI spec, and L5-Swagger

March 17, 2026

Fixed OOM in clearMailboxMessages by chunking attachment deletion

Added structured data (FAQPage, enhanced Organization) and fix content accuracy

Wrap broadcast() calls in try/catch to prevent blocking HTTP requests

Added webhook v2 events, stream broadcasts & APIs

March 16, 2026

Added message inspection endpoints and timeline timestamps

Allow string _id in cursor decoding

Added Search and Wait APIs with concurrency

Fixed CSP blocking Pusher WebSocket connections for real-time emails

Added cursor pagination and metadata enrichment

Added target="_top" to billing links

Use Message model for Mongo updates; add ObjectId tests

Added link check job, SafeUrlResolver and UI

Fixed API card response shape and spam card plan accuracy

Added REST API, OTP extraction, and spam analysis to marketing pages

March 15, 2026

Added test for API token modal reopen clearing token display

Clear API token display when modal is reopened

Clear stale failure flags on successful content extraction retry

Fixed ObjectId crash in content extraction for non-ObjectId message IDs

Updated rest-api-otp-extraction-checklist.md

Added OTP and magic link extraction from emails

Added REST API v1 with mailbox-scoped tokens

Mark cross-cutting concerns as done, 1 item remaining (CloudWatch)

Added REST API + OTP extraction checklist

Updated spamassassin checklist to reflect actual production state

Added inline refresh button for pending rule analysis state

Move spam analysis to dedicated tab with bar gauge and review fixes

Added UI/UX Pro Max skill for Claude Code

Fixed spamd hang: half-close write socket after sending email

Reduce spam-analysis production workers from 3 to 2 to match spamd max-children

Merge remote-tracking branch 'origin/spam-analysis'

March 14, 2026

Enabled spam rule breakdown for all paid plans, not just Pro/Max

Added SpamAssassin Phase 3: simulator, smart rules, filters, admin widget

Revert "Add SpamAssassin Phase 3: simulator, batch command, smart rules, admin widget"

Added SpamAssassin Phase 3: simulator, batch command, smart rules, admin widget

Added SpamAssassin Phase 2: REPORT rules, plan gating, full UI

Updated Fazier badge image and remove hidden class

Added SpamAssassin Phase 1: core infrastructure, score analysis, and UI

Added Fazier badge and allow Fazier images in CSP

Added SMTP and email testing blog posts

Added competitor comparison and email testing stats

Added related posts and feature cross-links

March 12, 2026

Added Bing Webmaster config and scheduler

Added Bing sitemap schedule tests and response body validation

Updated PostsTable.php

Added Save action, redirect, and record links

Added Mailosaur and Ethereal Email comparison pages and best tools blog post

Added feature pages for SMTP sandbox, team collaboration, webhooks, and email previews

Added framework integration guides and complete Phase 1 SEO roadmap

Switch schema to BlogPosting; remove SVG

Added worker-src blob: to CSP for FilePond Web Workers

Fixed CSP blocking FilePond blob: image previews in Filament admin

Expand comparison pages to 2,000+ words with unique content per competitor

Fixed CSP blocking Filament file uploads, avatars, and Cloudflare beacon

Added Mailpit comparison page, sitemap entry, and blog cover templates

Fixed CSP blocking S3 blog images and standardize OG image dimensions

Harden image proxy: DNS pinning, SSRF mitigations, IPv6, error handling

March 11, 2026

Fixed broken email images with server-side image proxy

SEO and security improvements: CSP header, title tags, logo, GTM position, font cache

Replace inline logo and remove admin greeting

SEO improvements: About page, breadcrumbs, font preload, schema fixes

Combine user listing columns and fix broken IP lookup URL

Added admin email action with audit trail and snapshot persistence

Infra: expose redis for shared haraka use

March 10, 2026

Added unified form submissions system with Filament admin panel

Fixed SEO schema gaps: shared JSON-LD partial, config-driven pricing, proxy-aware redirects

Enforce non-www canonical URLs across all SEO-facing outputs

Fixed SEO issues: hreflang, lazy images, homepage meta, edge caching

Tighten .eml raw data heuristic: skip text/plain raw when HTML exists

Fixed .eml download serving incomplete raw data instead of full HTML content

Fixed /_boost/ blocking: root-level 410 route, middleware exclusion, all bot groups

Block /_boost/ from search engines and return 410 Gone

Added .eml file download for inbox messages

Fixed SEO audit issues: theme-color, self-hosted fonts, sitemap lastmod, single-hop redirects

Fixed SEO audit issues: schemas, breadcrumbs, caching, noindex, dark mode

Fixed SEO audit issues: security headers, image CLS, sitemap, touch targets, trailing slashes

March 9, 2026

Added async attribute to Termly consent script

Removed FAQPage and HowTo JSON-LD schema from marketing and docs pages

March 3, 2026

Hardcode SendPit as project name in Sentry Slack notifications

Revert to Sentry's hosted brand icon for Slack notifications

Use self-hosted Sentry SVG logo for Slack webhook notifications

Use separate SENTRY_SLACK_WEBHOOK_URL for Sentry relay

Added Sentry webhook relay to Slack with signature verification

Fixed data race in TestAcceptMessage_QuotaGuard_Rejects

Enforce org email quotas; add quota tests

Added email_limit to subscription state and backfill

March 2, 2026

Exclude document and media file extensions from locale redirect

March 1, 2026

Create 30-day-sendpit-roi-template.xlsx

Updated SubmitGoogleSitemap.php

Harden Google sitemap command with retry predicates, error handling, and comprehensive tests

Detect locale from URL path in middleware

Wrap JSON-LD in @verbatim to prevent Blade interpreting @context/@type as directives

Added Google Search Console sitemap submit command

Set locale URL default early in EnsureOrganizationContext middleware

Escape @ symbols in MarkdownRenderer to prevent Blade directive errors

February 18, 2026

Show last activity in admin user's local timezone

Harden test discovery and phase startup guards

Show real-time last activity in admin panel via Redis-first lookup

February 17, 2026

Bound attachment parsing memory with per-part size limits

Fixed failing tests โ€” smart rule limits, suite isolation, slug collisions

Harden operational defaults (TLSRequired, MaxConnections, MaxLineLength)

Split compose into shared/standalone modes for MySQL

Share MySQL between web and SMTP via Docker network

Bound webhook fan-out concurrency (SP_WEBHOOK_MAX_WORKERS)

February 16, 2026

Added per-connection message and command rate limiting

Fixed test expectation for Livewire morph hook

Fixed Tier 3 test failures โ€” Slack mock, contact args, transaction payload

Fixed message view tests โ€” add RefreshDatabase and fix body assertion

Align password reset tests with anti-enumeration controller behavior

Preserve native MongoDB arrays in Email model

February 14, 2026

Make duplicate username retry DB-agnostic and add retry path tests

Eliminate DATA terminator goroutine leak and DoS surface

Fixed BillingPlanTest mailbox creation and email limit assertions

Updated MailboxService tests to verify encrypted password storage

Rewrite locale middleware tests as focused direct-invocation suite

Redact AUTH credentials and message content from SMTP logs

Validate and test getRawLabelIds behavior

Added SMTP line-length limit (RFC 5321)

Added configurable per-message recipient cap (SP_MAX_RECIPIENTS)

Narrow TestMaxConnections run to specific cases

Allow SSH in Claude Code permissions for prod server access

Added configurable SMTP connection limit

February 13, 2026

Added user last-activity tracking (Redis โ†’ MySQL)

Generate sitemap: add blog posts, --base-url option

Bump geo cookie to v3 and accept legacy timezones

Rename geo_captured cookie to geo_captured_v2

February 12, 2026

Set geo_captured cookie only after timezone

Require org-owner role for email deletion via EmailController routes

Tighten message access; remove mailbox appends

Added logo image assets

Require org-owner role for message deletion and prevent cross-mailbox IDOR

Use signed temporary URLs for S3 blog images instead of public URLs

Escape regex in Search to prevent injection

February 11, 2026

Added Mermaid.js support, admin preview button, and post creation UX improvements

Auto-capture user timezone and IP address on app usage

Replace env() calls with config() in MailboxService

Prevent account enumeration in password reset and registration

Added rate limiting to language switch route

Revert "fix: Reduce session lifetime from 30 days to 8 hours"

Replace wildcard postMessage origin with window.location.origin

Reduce session lifetime from 30 days to 8 hours

Changed TRUSTED_PROXIES default to empty to prevent IP spoofing

Require update permission for message delete and mailbox clear

Escape user input in MongoDB regex queries to prevent ReDoS

Added timezone and IP address columns to admin users listing

Added mailbox/org verification to MessagePolicy to prevent cross-org access

Scope email deletion to mailbox to prevent IDOR vulnerability

Save timezone during registration and add IP address to Slack notifications

February 8, 2026

Move pause/unpause/regenerate actions to edit pages

February 6, 2026

Replace broken MutationObserver with Livewire morph hook for timezone conversion

Use configurable MongoDB collection and fix retention fallback for unknown plans

February 5, 2026

Configure Redis timeouts & set Horizon job limits

February 3, 2026

Use CSS.Trusted mode for full CSS3 support in email sanitizer

Enabled CSS3 properties in HTML sanitizer (border-radius)

Added critical security hardening measures

Added Termly cookie consent integration

Added Termly cookie consent integration

Revert "feat: Enable Cookiebot cookie consent integration"

Enabled Cookiebot cookie consent integration

Improved mobile responsiveness and auth page consistency

January 29, 2026

Added auto-restart to SMTP health monitor

Added production architecture docs and SMTP health monitoring

January 23, 2026

Refined logo color filters and update landing page logos

Added blog feature with posts, admin, and frontend

Added MailHog and MailCatcher comparison pages

Added "What is Sendpit?" marketing page

January 22, 2026

Refined plan badge logic and color mapping

Configure custom update endpoint for locale-prefixed URLs

January 19, 2026

Removed auto-select of first email and add empty state

January 17, 2026

Fixed modal reopen issue in ShareLinkManager and add tests

Increase Smart Rules limits: Pro 100, Max 500

January 16, 2026

Added message copy functionality tests

Added Smart Rule badges and improve copy functionality in message iframe

Redesign landing page pricing cards

Added scenario filtering to mailbox messages list

Added feature comparison page

Updated plan comparisons with Smart Rules feature

Added Horizon supervisor for smart-rules queue

Added Smart Rules feature for automatic email classification

Added Smart Rules translations for all supported languages

January 15, 2026

Added attachment count and presence accessors to Message

Added plan comparison documentation

Updated admin check in EnsureOrganizationContext middleware

Added last email timestamp to mailbox table

Added admin timezone detection and display support

Fixed mailbox email queries and Email model table name

Show dynamic email count and last email date in table

Removed admin invoice download route and controller

Added admin invoice download functionality

Added Transactions relation manager to OrganizationResource

Removed legacy plaintext auth, require encrypted credentials

Removed legacy plaintext auth, require encrypted credentials

Added scheduled command to detect missing Paddle data

Exclude Paddle routes from locale redirect middleware

Updated PlanEnforcementSecurityTest for MongoDB email counts

Added paddle:sync command for recovering failed webhooks

Calculate email count from MongoDB instead of stored counter

January 14, 2026

Removed attach actions from user relation managers

Prevent duplicate org invitations and enforce org membership for mailbox access

Unify email templates with SendPit branding

Integrate Sentry for production error tracking

Updated impersonate import for v4.x compatibility

January 13, 2026

Handle bcrypt and plaintext passwords gracefully in UI

Implemented AES-256-GCM decryption for SMTP authentication

Implemented AES-256-GCM encryption for SMTP credentials

Use route helpers for message actions in mailbox view

Removed password encryption to fix SMTP auth

Added SMTP password encryption with migration support

Added encrypted cast and fix regenerate action

Use Color::Amber constant for primary color

Use Color::hex() instead of non-existent generateV3Palette()

January 12, 2026

Removed right gradient overlay and fix infinite scroll jump

Added visual mockups to Powerful Features section

Ensure left alignment for mailbox names and email counts

Ensure left alignment for team member names/emails

Consistent padding and alignment in hero mockup

Improved hero mockup alignment and remove indentation

Added spacing around company logos section

Correct SMTP host and team members alignment

Removed unnecessary scrollbar from login/register pages

January 11, 2026

Added FAQ section with JSON-LD schema

Use 301 permanent redirect for locale URL prefixing

Added multi-language hreflang support

January 9, 2026

Enhanced user listing and edit page

Aggressively remove fixed widths from forwarded content

Added inline responsive styles to forwarded content

Use text logo and improve content scaling

Use absolute URL for logo in email template

Resolve modal not opening on subsequent clicks

Added Horizon link to admin navigation

Move Horizon to admin domain

Revert "fix(email-forwarding): use verified sendpit.com domain for sending"

Use verified sendpit.com domain for sending

Added core email forwarding components

Added plan gating and UI integration

Correct Horizon artisan path in supervisor config

Simplify sendpit-logo component and improve nav spacing

Updated logo throughout the system

Updated branding with new logo and favicon

Use mail.sendpit.com subdomain for outgoing emails

January 8, 2026

Added manage links modal with tabs for active/expired links

Use execCommand fallback for copy on HTTP

Added Pro+ time-limited share links for emails

Removed raw headers from free user upgrade promo

Added Pro+ enhanced email header inspector

Make username generation race-safe with DB constraint

January 7, 2026

Fail fast when required organization roles are missing

Defer email sending until after transaction commits

Wrap registration flow in DB transaction for atomicity

Enforce Message-ID uniqueness via MongoDB index

Migrate SMTP passwords from plaintext to bcrypt

Updated CTA button to use brand yellow background

Removed misleading email address from invitation templates

Show registration time in user's timezone

Fixed failing security middleware tests

Added user impersonation for super admins

Handle redirect responses in PaymentStatusMiddleware

Changed SMTP encryption value to tls

Added locale parameter to invitation routes

Exclude impersonate routes from locale redirect

Added mailbox transfer between organizations

January 6, 2026

Added Slack notifications for new registrations and subscriptions

Added swap lock in resume() to prevent webhook race condition

Preserve plan during grace period and repair missing state on resume

Exclude admin subdomain from locale redirect middleware

Updated LoadMoreMessagesUITest for Livewire-based pagination

Updated frontend tests for locale routing and proper test setup

Added anti-spam protection to registration and password reset forms

Move tests from incorrect nested directory

Mock Slack webhook calls during testing

Added locale prefix to security test routes

Updated test routes to include language prefix

Correct route names in SubscriptionController

Use route() helper for locale-aware AJAX endpoints

Extend anti-spam protection to all public forms

Updated email translation keys

Preserve non-default user language preferences

Updated language switcher for URL-based locale

Include locale prefix in controller redirects

Configure URL-based locale routing in bootstrap

Added URL-based locale routing infrastructure

Added honeypot and time-based anti-spam protection

Reduce contact form rate limit and add IP tracking

January 5, 2026

Improved mobile responsiveness and SEO meta tags

Ignore custom_data.plan_slug for transaction plan detection

Correctly identify plan in proration transactions

Handle swap response when called via subscribe endpoint

Check Paddle subscription before OrgSubscriptionState

Restore plan_slug when resuming cancelled subscription

Show 'Keep this plan' on correct card during grace period

Show correct plan name in grace period badge

Handle upgrade from free plan with expired subscription

Changed main headings to H2 on docs pages

Link logo to home page

January 2, 2026

Actually update org_subscription_state when no Paddle subscription

Prevent webhook from overwriting free plan downgrade

Added Google Tag Manager to public pages

Changed hero CTA text to "Start using SendPit"

January 1, 2026

Added admin dashboard widgets

Link mailbox row to edit page in organization relation

Improved user and organization resources

Removed duplicate Team Collaboration and improve text visibility

Rewrite copy button with Alpine.js for better UX

Show toast messages above modals

Hide loading state text by default in users list

Restore modal button functionality

Removed parallax and update feature text

Prevent dropdown flash on page load with x-cloak

December 31, 2025

Changed domain from .local to .test for faster DNS resolution

Click user row to navigate to edit page

Disambiguate created_at column in UsersRelationManager

Added relation managers to OrganizationResource

Implemented organization-specific coupon system

Escape @ symbols in JSON-LD structured data

December 30, 2025

Added OG image for social sharing

Implemented comprehensive SEO fundamentals for public pages

Store plan_slug with transactions for accurate invoice descriptions

Get plan name from subscription items price_id

Show correct plan name for each transaction

Added backup postMessage listener for Paddle checkout events

Move eventCallback to Paddle.Initialize() for proper event handling

Ensure checkout success callback updates subscription state

Load Paddle.js when client_side_token is set

December 29, 2025

Accept client_side_token as alternative to seller_id

Block disposable email domains on public forms

Check organization pause before mailbox pause

Added organization-level pause kill switch

Reject emails to paused mailboxes

Added pause/throttle functionality

Added modern code snippets with syntax highlighting and copy button

Added developer documentation links

Removed flaky timing assertion from CI

Added heading IDs to markdown renderer for navigation

Correct sidebar navigation anchor links

Added public developer documentation page

Handle openssl TLS 1.1 rejection test gracefully

Fixed TLS version tests to check for connection success

Added build tags to standalone connectivity tests

Added artisan command to seed test emails into MongoDB

Improved loading state and copy button styling

Added webhook feature to Pro and Max plans

Added UI gating with upgrade flow for Pro feature

Implemented per-mailbox webhooks with delivery logs

Use file-based SQLite for tests and run migrations in CI

Added broadcast and Pusher test configuration

December 28, 2025

Email retention purge using wrong MongoDB field name

Security: Fix IDOR and harden inline preview in AttachmentController

Security: Add Layer 3 per-IP authentication rate limiting

Added CAP_NET_BIND_SERVICE for privileged ports

Correct binary path to match systemd service

Added per-connection authentication failure limits

Updated Claude Code project settings

Added SMTP security penetration test suite with sandbox semantics

Security: Add ASVS-tagged penetration test suite and fix IDOR vulnerabilities

Added edit and delete functionality to label manager

Removed array cast from label_ids - MongoDB stores arrays natively

Label and unread filters for MongoDB array fields

Config: Hide Quick Translate, move Translation Manager to System group

Added use-translation-manager gate for admin users

Skip locale merge for Admin model (no language column)

Implemented subdomain routing for admin panel

Security: Harden cookie security attributes

December 26, 2025

Security: Harden CORS configuration with explicit origin allowlist

Security: Add HMAC signature to webhook requests

Security: Add HMAC authentication to email webhook endpoint

Added rate limiting and Turnstile to auth routes

Added email labels feature with organization-scoped labels

Close nav dropdowns on Escape key and iframe clicks

S3 package

Use inline disposition for PDF preview to display in modal

Added inline preview for image and PDF attachments

Added Livewire scripts to landing page and keyboard navigation for emails

Align subject copy button with title

Added one-click copy buttons for email fields

Added advanced email search and filtering to mailbox

December 20, 2025

Updated refund policy to 14-day guarantee per Paddle requirements

December 16, 2025

Added dark mode support to contact, feature request, and bug report pages

Added Enterprise plan to billing page

Cancel subscription button not opening modal

Added dark mode support to Paddle checkout and billing success page

December 15, 2025

Added Bug Report and Feature Request links to authenticated footer

Footer consistency, button visibility, and Slack notification improvements

Pre-populate user data on contact form and remove phone field

Added Bug Report and Feature Request links to footers

Removed social links, Documentation, and Status from footers

Removed SMTP localhost reference from footers

Added Bug Report and Feature Request pages with Slack notifications

Added Enterprise plan with pricing guidelines for Paddle

Updated refund policy to 7-day guarantee and fix domain

December 14, 2025

Added login page translations

Exclude locale cookie from encryption

Sync guest language preference on login

Persist language preference via cookie after logout

Convert language selector from Livewire to form submission

Added dark mode base styles for form inputs

Added dark mode support to profile form partials

Added dark mode support to Livewire components

Added dark mode support to mailbox and message views

Added dark mode support to billing and invoice views

Added dark mode support to organization views

Added dark mode support to UI components

Added backdrop for click-outside and fix theme selector persistence

Added theme-changed event dispatch and mailbox layout dark mode init

Added landing.js to Vite build inputs

Added full landing header/footer to auth pages

Reorganize register form with 2-column layout

Added Turnstile scripts to auth layout

Updated register page to match landing design

Updated login page to match landing design

Revert login/register routes to controller-based auth

Added landing page translations for all languages

Added landing page content with i18n support

Added landing page static assets

Added landing page layout and infrastructure

Added hash-based URL navigation for section links

Merge master into landing branch

Resolve merge conflict in claude settings

December 12, 2025

[Phase 9] Complete final review and documentation

Fixed LanguageSelector return type and middleware ordering

Wrap all view files with translation helpers

Added comprehensive UI translations for all pages

[Phase 8] Add localization tests and bug fixes

[Phase 7] Add Livewire locale support and date formatting

[Phase 6] Add API localization support

[Phase 5] Add email localization

[Phase 4] Add translation content for all 5 languages

[Phase 3] Add frontend language selector components

[Phase 2] Add translation infrastructure

[Phase 1] Add locale detection middleware and service

[Phase 1] Add language column to users table

December 6, 2025

Mark attachment implementation 100% complete (v1.1.0)

Complete Phase 10 security verification for attachments

Fixed double base64 encoded attachments

Fixed Eloquent accessor/relation naming conflict for attachments

Fixed attachment display and download for embedded attachments

Fixed MIME parsing for nested multipart emails with attachments

Updated task list: Phase 12 (sendpit-web API) complete

Added email attachment support (Phase 12)

Added SSE-S3 encryption and update Phase 8 completion status

December 5, 2025

Added unit tests for attachment handling and MIME parsing (Phase 8)

Added MinIO development environment for S3 attachment storage (Phase 7)

Added attachment metadata to webhook notifications (Phase 6)

Integrate S3 attachment storage into session handler (Phase 5)

Added DATA size tracking during transmission (Phase 4 complete)

Added RFC 1870 SIZE extension for message size limits (Phase 4)

Added MIME parsing and attachment extraction (Phase 3)

Added S3 client for attachment storage (Phase 2)

Added S3 and attachment configuration (Phase 1)

Added email attachment handling documentation and task list

Added TLS unit tests and webhook documentation

December 4, 2025

Revert DATA terminator changes that broke email delivery

Fixed DATA terminator detection using suffix match instead of exact match

Fixed DATA terminator goroutine leak

Code review complete - approved

Updated task list: PR #1 created

Complete Phase 5 and Phase 7.2 tasks

Complete Phase 4 testing and update TLS documentation

Updated TLS task list with new phases and progress tracking

Simplify port display to inline layout

Added multi-port options to SMTP credentials modal

Added SMTP session tests for QUIT command handling

Fixed QUIT command blocking after DATA terminator

December 3, 2025

Added multi-port SMTP listener support for CI3 compatibility

Updated SMTP docs for Let's Encrypt certificate

Added STARTTLS encryption to SMTP credentials display

Added Phase 3-4 TLS testing and fix STARTTLS callback

Added unit tests for TLS implementation

Implemented STARTTLS support (Phase 2: Core TLS Implementation)

Added TLS configuration fields and environment variables

Merge tech lead's TLS security enhancements into task list

Added TLS implementation task list for tracking progress

Enhanced TLS implementation plan with missing cases

Added TLS/STARTTLS implementation documentation

December 2, 2025

Added ReplyServiceNotAvailable to SMTP reply package

Added RFC 5321 compliant idle connection timeout

Merge realtime-email: Add webhook notification for received emails

Fixed mailbox messages timezone and search box issues

Added member count and pending invites to organization Total Users card

Decode MIME-encoded email headers before storing

Added webhook notification for received emails

Fixed Quick-Mongo document listing to use correct field paths

Updated Quick-Mongo document listing with email-specific columns

Sort Quick-Mongo collections by created_at descending (newest first)

Fixed timezone conversion for message listing timestamps

Use @this syntax instead of $wire for Livewire compatibility

Simplify Livewire hook for timezone conversion

Fixed Alpine.js event listener syntax for Livewire morphing

Convert email timestamps to browser's local timezone

Fixed canceled subscriptions to remain active until period ends

December 1, 2025

Fixed Sanctum config to not require Sanctum class

Added real-time email updates using Pusher

Added manual refresh button to mailbox messages list

November 30, 2025

Fixed mailboxes page showing mailboxes from all organizations

October 6, 2025

Improved plan downgrade confirmation UI with visual indicators

October 5, 2025

Fixed modal flash on page reload using x-cloak

Added subscription cancellation undo feature

Updated billing system and organization controller

Enhanced billing UI with cancellation modal

Improved update payment method flow

Enhanced webhook payment status restoration

October 4, 2025

Added tests for payment failure system

Integrate payment failure handling with billing system

Added payment failure UI components and views

Added payment status middleware and resolution controller

Added payment failure tracking database structure

October 2, 2025

Fallback routes

Dark mode theme

Email font consistency

Redesign payment success page

Show mailbox and user limits on mailboxes dashboard

Added recent invoices section to billing page

Added WebFetch for developer.paddle.com to allow list

Enforce user invite limits based on plan in MailboxMemberInvite

Fixed spacing in messages count label

Updated allowed tools in Claude local settings

Added marketing landing page

Added Alpine persist plugin for dark mode

Added Cypress test for timezone auto-selection

Convert auth pages to Livewire full-page components

Added auth layout matching landing page design

October 1, 2025

Replace alert with modal for error messages in billing

Improved mailbox invitation handling and feedback

Updated pricing grid to use 4 columns on large screens

Restrict user management links on organization page by permission

Removed test checkout simulation for billing in dev mode

Added reusable error alert component and display errors

Removed 'custom' plan from billing and UI

Added test for deleting mailbox emails from MongoDB

Updated billing dashboard with PDF download links

Implemented PDF invoice download functionality

Improved Paddle webhook handling and transaction processing

Added receipt_url column to transactions table

Removed billing portal functionality

Removed billing portal redirect and related code

Improved subscription swap and billing UI with webhook polling

Enabled test checkout in non-production environments

Added Admin support to policy classes for authorization

Fixed method call for currentOrganization in Blade view

Added Admin model, migration, and authentication guard

Replace and enhance plan_mappings migration

Added paddle_product_id to plan_mappings table

Updated plans and subscriptions migrations for clarity

Enhanced organization admin table and improve boot script

Extend session and remember me duration to 30 days/10 years

September 30, 2025

Improved team member usage display format in billing page

Improved billing page error handling for already-on-plan scenario

Resolve subscription cancellation and free plan downgrade issues

Updated UI views with billing integration

Enhanced organization context and multi-tenancy

Added billing management console commands

Implemented organization billing page with upgrade modal

Added billing UI views and components

Added plan limit enforcement system

Implemented subscription management controllers

Added Paddle webhook handling with duplicate prevention

Implemented core billing logic with SparkBilling

Added billing infrastructure and database schema

September 29, 2025

Fixed cascade deletion of invitations when canceling from organization or mailbox

Added get-config to allowed Claude tools

Fixed missing org-member role issue preventing invitation acceptance

Improved invitation acceptance flow and UI feedback

Set new organization as current on creation

Removed TrustProxies middleware and configure proxies in app.php

Added HTTPS enforcement and trust proxies middleware

Make email handling case-insensitive across authentication

September 28, 2025

Added new MCP commands and WebSearch permission

Added pricing plans documentation

Changed organization update method to PATCH

Added device preview switcher to email iframe view

Added tabbed email view with HTML, source, text, and raw source

Added Livewire mailbox messages list with search and pagination

Updated user role badges and mailbox message count UI

Improved organization email stats and user role display

Include org owners in mailbox member counts

Improved timezone selection on registration form

Added conditional rendering to success alert component

Show organization user count in navigation menu

Simplify regenerate credentials success handling and modal header spacing

Organize SMTP tests into dedicated Feature/Smtp folder

Improved success alert with transitions and counter-based key

Improved success alert component and regenerate credentials UI

Updated test files to match improved test patterns

Convert mailbox credentials regeneration to Livewire component

Added password reset complete flow tests

Added comprehensive email verification flow tests (8 tests)

Fixed organization creation bug and add organization switching tests

Complete comprehensive font size standardization

Fixed failing frontend tests

Standardize font sizes and add timezone selector to registration

Improved mailbox show page layout and consistency

Improved timezone selector with GMT offset labels

Added timezone support for user accounts

Removed auto-open logic for manage users modal

Show organization owners in mailbox members list

Removed orphaned DashboardFunctionalityTest

Auto-open manage users modal for mailboxes with no explicit members

UI improvements and Alpine.js fix for non-Livewire pages

Added page rendering tests for all frontend pages

Convert mailbox member management to Livewire and fix lazy loading

Removed mobile wrapper from marketing pages and unify site design

Improved DashboardFunctionalityTest skip message

Removed PasswordResetFlowTest throttling test

Re-enable ContactFormTest with proper user organization context

Re-enable 'organization shows mailbox count' test

Removed VSCode mcp.json configuration

PagesAccessTest - mailbox create now in modal on mailboxes index page

OrganizationFunctionalityTest - update to session-based routes without IDs

Organization routes - use singular organization.show without ID parameter

PasswordResetFlowTest - add Organization import

Message headers test - check for actual header fields displayed

HTML message test - create directly and check for iframe srcdoc

Plain text message test - create message directly without factory defaults

Single email deletion - use Message model and cast mailbox_id to int for comparison

Email deletion authorization and use Message model for MongoDB _id compatibility

MessagesFunctionalityTest - add Organization and Mailbox imports

MessagesFunctionalityTest - check iframe wrapper subject instead of body content

MarkMessageAsReadPestTest - update expected status from 404 to 403

MailboxFunctionalityTest - add missing Role import

MailboxFunctionalityTest - add missing Organization import

MailboxFunctionalityTest - update invite page test for modal

MailboxFunctionalityTest - update members view test for modal consolidation

LoadMoreMessagesUITest - add missing User import

EmailVerificationTest - add missing Organization import

Organizations/show - replace non-existent mailboxes.create route

ProfileManagementTest - add Organization import and fix error bags

SMTP tests - add role seeding to beforeEach

InvitationAcceptanceTest - route and validation fixes

CurrentOrganizationTest - add missing imports

CreateInvitationTest - duplicate invitation prevention

ContactFormTest - contact form page accessible

AuthenticationFlowTest - terms and privacy links accessible

AuthenticationFlowTest - registration fires registered event

Added FormRequest validation and policy authorization to all forms

Removed orphaned routes and consolidate to modals

September 27, 2025

Convert mailbox creation to modal and standardize modal headers

Fixed unread count display and revert navigation text size

Added manage users modal to mailbox page

Redesign legal pages with condensed formatting and proper navigation

Redesign organization pages with modern UI and consolidated settings

Fixed UI design issues and enhance contact form

Redesign legal pages with beautiful modern interface

Strengthen legal protections with comprehensive liability disclaimers

Added comprehensive terms of use and privacy policy system

Standardize buttons across application pages

Implemented beautiful modal system with Alpine.js and SendPit branding

Redesign organization creation page with beautiful split-panel layout

Upgrade to Tailwind CSS 4 and implement Flux modals with redesigned dropdowns

Added Claude Code configuration files

Option 1: Refactor InvitationAcceptanceTest with modular infrastructure

Removed non-essential tests, keep only Pest frontend and SMTP tests

Fixed resend invitation to synchronize expiry for linked invitations

Added SendPit logo SVG component and integrate across all pages

Added npx cypress run to allowed Bash commands

Added comprehensive Cypress E2E tests for invitation system

Added migration to assign org-member role to existing users

Fixed org-member role assignment for mailbox invitations

Added database table records for all invitation scenarios

Updated Permissions.md to match actual codebase implementation

Removed legacy docs

Updated settings.local.json

Removed outdated documentation and unimplemented API

Reorganize invitation documentation with clear logical flow

Updated documentation: Problem 4 fully implemented

Fixed Problem 4: Skip org invitation redirect for users already in organization

Consolidate documentation from 11 files to 4 essential files

Integrate expiration handling as core functionality in documentation

Updated documentation: Problem 1 fix integrated into core functionality

Fixed Problem 1: Expired linked invitations causing redirect loops

Document all invitation edge cases with comprehensive flowcharts

Added mailbox invitation link redirect to organization invitation

Show pending invitations on create organization page and clarify create intent

Create unified copy button architecture with consistent UX

Added copy invite link functionality to mailbox members page

Fixed user redirect to org creation page after mailbox invitation acceptance

Fixed Form Request classes to use consolidated find() method

Fixed CreateInvitationTest routes to use current organization endpoints

September 26, 2025

Fixed EmailController and MessageFactory for repository consolidation

Fixed multiple test failures in frontend test suite

Fixed MessageFactory to match actual MongoDB document structure

Consolidate repository methods to prefer domain objects over IDs

Show hyphen instead of empty role box in organization members page

Fixed method name conflict in InvitationRepository

Phase 3: Refactor controllers to use services/repositories

Phase 1 & 2: Add repository/service methods and MemberStatus enum

Laravel boost installed

Fixed duplicate entries in mailbox members listing

Removed redundant organization routes and clean up URL structure

Improved TestCase MongoDB configuration to use dynamic database naming

Fixed MongoDB connection issue in tests

Fixed login throttling test by correcting error message case

Fixed remember me functionality test by using flexible cookie detection

Fixed password confirmation test by adding route name and middleware exclusion

Fixed email verification test by excluding verification routes from organization middleware

Fixed password validation test to check correct error bag

Fixed password update test by excluding profile routes from organization middleware

Fixed undefined variables in MailboxAccessGrantedMail email template

Fixed route error in MailboxAccessGrantedMail and improve test infrastructure

Fixed undefined array key 'username' in OrganizationWithMailboxInvitationMail and improve email testing infrastructure

September 25, 2025

Fixed recipient email display in message list

Fixed unread count showing blank instead of 0 on mailboxes page

Make footer more compact to save screen space

Fixed load more messages functionality and add smooth scrolling

Fixed email alignment issue when marking as read

Make email listing sidebar more compact with improved unread indicator

Added proper subtitles to mailbox pages and enable 4-column layout

Reduce UI element sizes for more compact interface

Fixed mailbox page layout to prevent outer scrolling

Added unread email indicator and mark as read functionality

Added HTML test components to all emails and fix link handling

Fixed MongoDB ID type mismatch causing empty mailbox views

Fixed email links to open in new tabs instead of iframe

Fixed MongoDB query casting issue in MessageRepository

Updated mailbox index to show all accessible mailboxes

Fixed MailboxController to use correct MessageRepository methods

Fixed tests to use database field instead of session for current organization

Fixed all failing CurrentOrganizationTest tests

Added organizations index view with test improvements

Fixed SQL error on mailbox members page and refactor to repository pattern

Fixed mailbox visibility after creation

Fixed mailbox creation 404 error - use current organization

Fixed undefined variable errors in invitation emails

Fixed invitation email system - resolve missing view errors

September 24, 2025

Fixed failing frontend tests for Profile, Password Reset, and Organization Switch

Added comprehensive frontend tests for ProfileController, Password Reset, and Organization Switch

Fixed organization switch test route

Added organization check for mailbox creation

Fixed remaining test issues and mailbox create page

Implemented clean organization switching with proper URLs

Summary of frontend test fixes

Move dashboard route into auth middleware group

Move dashboard logic from route to controller

Removed organization ID from URLs using session-based routes

Improved email validation logic to exclude production specifically

Fixed OrganizationController DTO method calls

Skip DNS validation for emails in non-production environments

Removed redundant 'Select a role' option from organization invite form

Updated custom command namespaces and improve naming

Fixed mailbox permission tests to expect 403 status

Fixed mailbox controller and enable mailbox view test

Fixed mailbox controller and test issues

Fixed undefined variables in organization show page

Complete InvitationType enum implementation across codebase

Removed outdated sections from Invitations documentation

Added comprehensive invitation system documentation

Updated controllers to use InvitationType enum

Added InvitationType enum and update models/services

Clean up remaining references to legacy invitation models

Fixed remaining invitation system issues after refactoring

Updated test commands and add comprehensive invitation flow tests

Added organization invitation acceptance route

Added authorized emails to Horizon access gate

September 16, 2025

Fixed remaining failing frontend tests

Fixed authentication and contact form tests

Fixed all invitation flow tests

Fixed failing frontend tests and validation errors

Added comprehensive frontend Pest tests and model factories

Removed action buttons from organization dashboard

Fixed undefined method error in OrganizationController

Removed legacy dashboard view and add maintenance scripts interface

Added mailbox commands with detailed logging

Fixed organization page lazy loading and dropdown checkmark display

Updated tests for unified invitation system compatibility

Implemented unified invitation system for organizations and mailboxes

Removed font-medium from message subject and add tests

Fixed tests for recent role/permission changes and add Turnstile support

Implemented complete CSS isolation for email content using nested iframes

Condense header bar and reduce spacing throughout site

Redesign mailbox listing page with tile layout and performance optimizations

Implemented smart mailbox invitation system for existing and non-existing users

Added navigation links to user and mailbox cards on organization page

Make emails clickable and replace dashboard with organization show page

Updated organization selector to navigate to organization show page

Added organization show page with beautiful statistics

Updated dashboard SMTP configuration for production

Implemented 'Load More' pagination for email list

Updated organizations/create page to match site design consistency

Redesign mailbox page with modern split-pane layout

Rename MySQL and Redis Docker containers and volumes

Allow org owners to view and manage mailbox credentials

September 15, 2025

Fixed compilation error and add comprehensive Go-based tests

Removed all MailHog references and rebrand to SendPit

Removed MongoDB/Mongo Express and change Mailcatcher port to 2525

Fixed quick-mongo MongoDB issues and navigation

Added MongoDB architecture documentation and quick-mongo project

Added MongoDB browser tool (quick-mongo)

Enabled session encryption by default for security

Removed obsolete MailHog documentation and test files

Updated and reorganize documentation

Removed redundant MongoDB configuration fields

September 9, 2025

Fixed VSCode log file visibility and clean up SendWelcomeEmail

Fixed welcome email issues and improve email validation

Fixed mailbox view route and remove access restricted message

Fixed Docker volume mounts after moving Laravel to root and add Mailcatcher service

Implemented email layout inheritance and update all emails to SendPit style guide

Fixed password reset throttling for local development

Added welcome email for new user registrations

Installed horizon

Make Cloudflare Turnstile containers full width

Simplify landing page with centered SendPit heading

Added user-friendly error messages for Turnstile verification

August 31, 2025

Configure Filament admin panel settings

August 22, 2025

Clean up repository for SMTP-only server

August 16, 2025

Redesign user dropdown to be more integrated and compact

Updated mailbox members pages to match style guide

Fixed organization switcher dropdown styling

Added organization switcher dropdown to navbar

Added description column to permissions table

Unit tests

Logo, style guide

Simplify permission system with single guard and prefixed permissions

Tests and invitations controller

Implemented fluid width layout and create comprehensive style guide

August 15, 2025

Redesign all pages with modern minimalistic flat design and reusable components

Fixed navigation active states and sticky footer layout

Added global site footer with dark theme

Updated navigation to black theme with yellow dashboard header

Redesign navigation and dashboard with modern minimalistic flat design

Added comprehensive database seeding

Improved organization context and user flow

Added login link package integration

Fixed user authorization and policy issues

August 6, 2025

Docker optimizations

Complete Docker optimization with worker OPcache and huge pages

Optimized Docker performance with delegated volumes and enhanced OPcache

Added custom theme colors to SendPit

Theme colors - yellow and black

August 5, 2025

Added mailbox-specific user management system

Fixed invitation system to use Role models throughout

Move authorization logic from controllers to Form Request classes

Added organization switcher functionality

Removed all ability to delete organizations

August 4, 2025

Updated Filament ContactResource to use ContactStatus enum and service methods

Added ContactStatus enum using Enumhancer

Added Laravel code review subagent configuration

Implemented DTOs for service layer and update architecture guidelines

Added mailbox name edit functionality and remove all database transactions

Updated database.php

Removed organization-scoped mailbox routes and consolidate controllers

Updated AWS SES region to ap-south-1 (Mumbai)

Integrate AWS SES for email sending

Updated default config for Redis, MySQL, and SMTP

Added composer

July 30, 2025

Restrict Filament admin access to [email protected] on non-local environments

Fixed email count recalculation after message deletion and clearing

Added message deletion and mailbox clearing functionality

Added email count feature with MongoDB recalculation

Simplify mailbox listing page

Move back button to avoid accidental mailbox deletion

Implemented email message viewing functionality

Simplify Cloudflare Turnstile setup for local development

Added Cypress tests for authentication and contact forms

Added Cloudflare Turnstile verification to all authentication forms

Fixed SMTP test failures and improve authentication handling

Fixed mailbox message isolation and SMTP test assertions

Contact us

Removed permission creation from migration

Claude settings

Added named volumes for Redis and MongoDB config

Fixed MailHog Docker build by correcting vendor directory path

Added comprehensive Haraka SMTP server implementation guide

Disabled authentication for MongoDB Express

Added separate MailHog test container and test database configuration

Added comprehensive SMTP tests for security audit implementation

Implemented security audit recommendations for SMTP

Updated smtp-issue.md with optimization analysis and RFC compliance

Added comprehensive documentation to SMTP workaround

Fixed SMTP response timeout issue in password reset flow

July 29, 2025

Added Pest test for forgot password functionality

Implemented user removal from organizations with self-removal prevention

Fixed Laravel test database configuration to use SQLite

Fixed all non-SMTP Laravel tests

Fixed role management to use Spatie permissions correctly

Combine mailbox settings and email listing into unified view

Added comprehensive Pest tests for mailbox isolation and SMTP authentication

Implemented SMTP authentication and email segregation by mailbox

Rename invitations section to users

Convert from role-based to permission-based authorization

Fixed permissions for invitations navbar link

Docker changes

Fixed message viewing functionality and MongoDB integration

Added message viewing functionality for mailboxes

Fixed organization role references after Spatie permissions migration

Changed mailbox credentials from encrypted to plaintext storage

Migrate to Spatie permissions and implement service/repository pattern

Added Laravel Conventions section with architecture patterns

Added comprehensive invitation system for organizations

Implemented MySQL-based mailbox system with encrypted credentials

Added organization creation during user registration

Convert MailHog to SMTP-only server

Configure MailHog to use MongoDB storage

Complete MySQL connectivity for MailHog

Revert MailHog to original open source version

Docker changes

Removed lock files and Filament assets from version control

Updated settings.local.json

Added Claude Code settings with allowed/denied commands

Create sendpit.code-workspace

Rename project from DevInbox to SendPit

Added health checks for mailhog and php services

Make Form Request classes mandatory for all web form inputs

Added comprehensive Laravel Form Request validation requirements

Added input validation and ID verification security requirements

Added security constraints: no file access or commands outside project root

Updated remaining app/ references to laravel/ in documentation

Rename app/ directory to laravel/ (lowercase)

Added Claude context optimization guide and ignore file

July 28, 2025

Implemented Laravel backend for organization and mailbox management

July 27, 2025

Merge fix-compilation-errors: Complete Laravel integration and project restructure

Create Hello World dashboard with MailHog branding

Setup Laravel with Breeze authentication and MongoDB support

Integrate Laravel Docker setup with MailHog

Removed unused imports and methods from storage layer

Implemented comprehensive environment variable support

July 26, 2025

Improved dashboard authentication timing to prevent redirect loops

Cypress test fixes and UI improvements

Fixed authentication and add Cypress E2E tests

Fixed compilation errors and implement tests

Implemented password reset and account settings functionality

Redesign UI with users management page and improved mailbox view

Resolve contextKey redeclaration error in auth package

Implemented role-based access control and admin features

Implemented user invitation system with email notifications

Make product branding configurable via environment variables

Rebrand frontend - remove all MailHog references

Fixed SMTP Reply construction - use proper Reply helper functions

Fixed SMTP authentication implementation - use proper Reply objects

Added SMTP authentication for multi-tenant mailboxes

Fixed form submission security issue - forms were submitting via GET

July 9, 2022

Updated information about installation

October 11, 2020

Fixed order of install docs

Added install documentation for FreeBSD

September 30, 2020

Use multistage build to minimize container size

May 4, 2020

Revert letter case change - it's lowercased now

Tweak path to MailHog for Ubuntu installation

December 14, 2019

Removed unnecessary loop and select when waiting on exitCh

September 14, 2018

Updated BUILD.md

August 24, 2018

Added link to PHP library to docs

March 12, 2018

Updated CONFIG.md

February 6, 2018

Re-arrange installation and add Ubuntu/Debian

January 25, 2018

Use official golang as base container

November 28, 2017

Updated docs/config

June 21, 2017

Added notice how to mount "maildir" storage.

April 16, 2017

Added vendor back in (again!)

Added mention to releases

Added release notes for 1.0.0

Temporarily remove vendor directory

Mention using sendmail and PHP config

Updated vendor

Fixed build issue

Updated vendor

Updated storage

Fixes mailhog/MailHog#148 and fixes mailhog/storage#7

February 2, 2017

Updated MailHog-UI assets vendor

December 12, 2016

Added a snapcraft.yaml file for building snaps (https://snapcraft.io) of MailHog

November 14, 2016

Added note about reverse proxies and firewalls for #117

Removed references to Rockerfile

Added libraries doc for #120

November 8, 2016

Added version flag which displays the current version.

September 4, 2016

Updated mgo dependency

Added release notes for 0.2.1

August 10, 2016

Removed 1.4/1.5 from .travis.yml

Added vendor directory

July 7, 2016

Updated build docs

Force rocker build to ignore cache

Updated import path for mgo

Added fix from @kkrauth to swagger json

April 28, 2016

Added info about starting mailhog service with brew

April 26, 2016

Example init script 404 - updated link

April 22, 2016

Use single API constructor

March 22, 2016

API spec doesn't define the search query parameter

March 20, 2016

Added 1.5/1.6 to .travis.yml

March 14, 2016

Fixed configuration documentation

March 13, 2016

Updated year

Added release notes

March 6, 2016

Fixed for mailhog/MailHog#25. Provide a new configuration parameter ui-web-path.

February 8, 2016

Optimized docker image size

October 6, 2015

Updated version to 0.1.8

May 27, 2015

Removed golang 1.3 (http.BasicAuth needs 1.4+)

Fixed markdown

Added missing info

Attempt to add HTTP authentication for #40

May 26, 2015

Make `MailHog sendmail` a shortcut to `mhsendmail` for #45

Added some ASCII art

May 20, 2015

Updated releases

April 19, 2015

Removed gotcha (fix #42)

April 6, 2015

Quote port number in smtp config JSON

Removed comma from last value in smtp config JSON

March 14, 2015

Updated badge

Added v0.1.6 release

February 24, 2015

API v2 search and message list documentation for #36

Document outgoing SMTP config for #36

February 12, 2015

Updated screenshot

Updated releases

January 24, 2015

Updated RELEASES.md - fix #31

January 8, 2015

Updated .travis.yml - remove go 1.2, add go 1.4

December 27, 2014

Updated releases

Added APIv2 (and update download badge)

Updated screenshot

Updated url

December 24, 2014

Clean up flags

Updated releases doc

Move stuff around

Clean up config

Updated config

Make naming more consistent

Updated github URLs

Removed data package

Removed http package

Removed storage

Switch to github.com/mailhog/smtp

Introducing Jim, the Chaos Monkey

December 21, 2014

Fixed session close bug

Added release documentation

Fixed #11 - add build documentation

December 20, 2014

Fixed #12 - support invalid MAIL/RCPT syntax

December 17, 2014

Fixed #16 (on the right branch this time!)

Updated docs to refer to correct /api/v1 URL.

December 12, 2014

Correct display of text/plain and text/html multipart messages with quoted-printable transfer type

December 7, 2014

Move some packages

December 2, 2014

Added build status badge

Hopefully fix drone.io tests

Hopefully fix travis issue

Added .travis.yml

November 23, 2014

Added godoc reference

Fixed routes

Removed old tests, fix import

Move stuff around

Removed old config package

Move assets and main func

Move config/message/http/storage packages

Move smtp package

Added AUTH LOGIN tests

Added AUTH PLAIN tests

Added AUTH EXTERNAL tests

Added session tests

Use io.ReadWriteCloser in place of net.TCPConn for SMTP session

Removed old session tests and add basic validation handler tests

Added reply struct tests

Avoid testing log output

Added more protocol tests

Added more protocol tests

Added some protocol tests

Make ident configurable

Added LOGIN/PLAIN/CRAM-MD5 authentication hooks

Fixed storage interface and fix dependency mess

November 22, 2014

Added hook for EXTERNAL authentication mechanism

Added sender/recipient validate hooks

Clean up reply handling

Removed protocol dependency on config

November 13, 2014

Added bintray download icon

Fixed #5 - support leading tab on multi-line header

November 1, 2014

Updated releases

Missed header

Partial support for RFC2047 (#4)

October 29, 2014

Changed release output path, add missing LICENSE file

Configure from environment

Hopefully fix #2

June 24, 2014

Fixed gotcha support (and some other bugs)

Fixed eventstream

June 23, 2014

Start converting to use github.com/ian-kent/gotcha

April 28, 2014

Updated APIv1 docs

Added releases summary

April 27, 2014

Resizable message list, hide HTML tab if message has no HTML

Added support for nested multipart messages

Toggle event stream connection

Real-time updates using EventSource

Clean up static content routing

Clean up routing

Fixed markdown

Clean up API

Updated screenshot

MIME part viewer and download individual parts

Message count in web ui

Added icons to menus

Added glyphicons to events

Web UI message search

Fixed scroll bug on first load

Don't auto-remove failed events

Slightly better UI error handling

API error reporting

Release messages via SMTP

Use go-bindata to embed assets

April 26, 2014

Improved web UI message list

Message preview UI fixes

Fixed bugs in header parsing

Added message download

April 24, 2014

Added glyphicons to show/hide header buttons

Default to in-memory storage

April 23, 2014

Added in-memory storage, clean up config

Web UI improvements

April 22, 2014

More auth tests, fix bug

Added AUTH tests and fix a bug

Added basic AUTH support (RFC4954)

Removed content/MIME from message list API

April 21, 2014

Mime support and html email rendering

MIME detection and add some error responses

April 20, 2014

Multiple messages per connection, advertise pipelining

Clean up mongodb

Only show first subject header

Added subject to example test

Added message source preview

Better header rendering

Get single message API

Clean up http handling

Delete single message api

Added message list api

Added HTTP server and assets

April 19, 2014

Improved received header

Clean up message parsing and add tests

Added DATA/RCPT commands

More commands, better connection handling/logging

April 18, 2014

Added basic EHLO/HELO support

April 16, 2014

Read from socket

Begin implementing RFC5321

Basic go echo server

New feature
Improvement
Bug fix