Skip to content

IndiePitcher/ip-smtp-proxy

Repository files navigation

IndiePitcher SMTP Proxy

SMTP proxy server for IndiePitcher - enables sending transactional emails via SMTP protocol.

🏠 Self-Hosting

This is the source code for the IndiePitcher SMTP proxy that you can self-host. The official hosted version is available at smtp.indiepitcher.com and requires no setup.

⚠️ Important: If you choose to self-host, you'll need to manage your own SSL/TLS certificates for secure SMTP connections using something like certbot.

Overview

This service provides an SMTP interface to IndiePitcher's email API, allowing integration with services like Supabase Auth, Firebase Auth, and other platforms that require SMTP for sending emails.

SMTP Credentials

  • Host: smtp.indiepitcher.com
  • Port: 587
  • Username: indiepitcher
  • Password: YOUR_API_KEY

Note: Set "enable secure connection" to false if asked. The connection will be upgraded to SSL/TLS using STARTTLS command on successful connection.

Features

  • HTML Email Support: Send custom HTML emails
  • Markdown Support: Send emails using markdown syntax wrapped in <indiepitcher-markdown> tags
  • Integration Ready: Works with popular authentication services (Supabase, Firebase, etc.)
  • Dashboard Integration: All SMTP emails appear alongside REST API emails in the IndiePitcher dashboard

Markdown Email Example

<indiepitcher-markdown>
Hi there,

You have been invited to create a user on [IndiePitcher](https://indiepitcher.com).

<button ip:no-track href="https://app.indiepitcher.com/register">Accept the invite</button>
<br/>

Thanks,

Your IndiePitcher team
</indiepitcher-markdown>

Limitations

To prevent abuse, the following limitations are in place:

  • ✅ HTML emails only (plaintext not supported)
  • ❌ Single recipient only (no multiple recipients)
  • ❌ Cc/Bcc fields not supported
  • ℹ️ From field is ignored - IndiePitcher uses the sender defined in your project's settings

Recommended Sender Configuration

To ensure your configured project sender is used:

  • Sender name: indiepitcher-ignore-sender-replyto
  • Sender email: anything (will be ignored)
  • Reply to: anything (will be ignored)

Usage Warning

⚠️ Do not send bulk/marketing emails through the SMTP proxy. This service is intended for transactional emails such as:

  • Password resets
  • Welcome emails
  • Account verification
  • User-triggered notifications

The service has extensive checks, especially for free tier users. Contact support if you have a valid use case for bulk emails.

Development

Prerequisites

  • Node.js 20+
  • npm

Setup

npm install

Scripts

  • npm run dev - Run development server with ts-node
  • npm run build - Compile TypeScript to JavaScript
  • npm start - Run production build
  • npm test - Run Jest tests
  • npm run typecheck - Check TypeScript types

Environment Variables

  • PORT - Server port (default: 8080)
  • SENTRY_DSN - Sentry error tracking DSN
  • MIXPANEL_TOKEN - Mixpanel analytics token
  • privkey - Base64 encoded SSL private key
  • cert - Base64 encoded SSL certificate

Documentation

For complete documentation, visit: https://docs.indiepitcher.com/smtp

Deployment

This service is configured for deployment on Fly.io with automated GitHub Actions deployment.

License

ISC

About

SMTP proxy for IndiePitcher REST API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published