<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: rustmailer</title>
    <description>The latest articles on DEV Community by rustmailer (@rustmailer_39a575ac86abbf).</description>
    <link>https://dev.to/rustmailer_39a575ac86abbf</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3370182%2F9c7dd3e4-79a4-4c7f-9e13-9acfc2ad7183.jpg</url>
      <title>DEV Community: rustmailer</title>
      <link>https://dev.to/rustmailer_39a575ac86abbf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rustmailer_39a575ac86abbf"/>
    <language>en</language>
    <item>
      <title>RustMailer: A Self-Hosted IMAP/SMTP Middleware for Developers</title>
      <dc:creator>rustmailer</dc:creator>
      <pubDate>Wed, 20 Aug 2025 22:07:58 +0000</pubDate>
      <link>https://dev.to/rustmailer_39a575ac86abbf/rustmailer-a-self-hosted-imapsmtp-middleware-for-developers-27o</link>
      <guid>https://dev.to/rustmailer_39a575ac86abbf/rustmailer-a-self-hosted-imapsmtp-middleware-for-developers-27o</guid>
      <description>&lt;p&gt;Hey everyone,&lt;/p&gt;

&lt;p&gt;I’ve been working on RustMailer for the past year, but until now I held off posting here because I felt it was missing key features and I needed to make frequent breaking changes to iterate quickly.&lt;/p&gt;

&lt;p&gt;Today, I’m happy to announce RustMailer 1.0! 🎉&lt;/p&gt;

&lt;p&gt;There are still a ton of things I’d like to build, but the project is now in a place where I feel more confident sharing it with the r/selfhosted community.&lt;/p&gt;

&lt;p&gt;🌟 Key Features&lt;br&gt;
🌐 Modern APIs&lt;br&gt;
Offers both gRPC and OpenAPI interfaces&lt;br&gt;
Multi-version API documentation&lt;br&gt;
🚀 High Performance &amp;amp; Cost-Efficient&lt;br&gt;
Written in Rust for safety and speed&lt;br&gt;
Low memory usage, no Redis or external dependencies required&lt;br&gt;
Ideal for production at minimal cost&lt;br&gt;
📬 Multi-account IMAP Support&lt;br&gt;
Incremental sync using UID-based strategy&lt;br&gt;
Supports folder selection&lt;br&gt;
Windowed or date-range sync&lt;br&gt;
📤 SMTP Sending&lt;br&gt;
Manage outgoing email via SMTP&lt;br&gt;
Connection pooling for better performance&lt;br&gt;
🧾 Email Template Support&lt;br&gt;
Dynamic templates for transactional and marketing messages&lt;br&gt;
📡 Flexible MTA Integration&lt;br&gt;
Send via account-specific SMTP servers&lt;br&gt;
Or use self-hosted MTA services / third-party providers&lt;br&gt;
📈 Open &amp;amp; Click Tracking&lt;br&gt;
Built-in support for tracking email opens and link clicks&lt;br&gt;
🔄 Webhooks with VRL&lt;br&gt;
Send webhook payloads to external systems&lt;br&gt;
Process them with VRL scripts for filtering and transformation&lt;br&gt;
🔌 NATS Integration&lt;br&gt;
Push real-time events to NATS for seamless downstream integration&lt;br&gt;
🖥️ Web UI &amp;amp; Client&lt;br&gt;
Built-in web-based email client and admin dashboard&lt;br&gt;
🔐 OAuth2 Support&lt;br&gt;
Built-in OAuth2 flow with web-based authorization UI&lt;br&gt;
Automatically manages access &amp;amp; refresh tokens&lt;br&gt;
🌍 Proxy Support&lt;br&gt;
IMAP, SMTP, and OAuth2 proxy support for restricted environments&lt;br&gt;
📦 Deployment&lt;br&gt;
Single sub-60MB binary&lt;br&gt;
Zero external dependencies (not even Redis)&lt;br&gt;
No database required&lt;br&gt;
➡ Just run it and go.&lt;br&gt;
💡 License &amp;amp; Pricing&lt;br&gt;
RustMailer is not free. A free trial is available for testing and evaluation, but production use requires purchasing a license key.&lt;/p&gt;

&lt;p&gt;❓ Why RustMailer?&lt;br&gt;
Most languages have IMAP/SMTP libraries – but they’re just low-level tools, not a production-ready email infrastructure.&lt;/p&gt;

&lt;p&gt;To build a truly reliable email service, you need:&lt;br&gt;
✓ Incremental sync (with state tracking)&lt;br&gt;
✓ Battle-tested MIME parsing (BODYSTRUCTURE, encoding, attachments)&lt;br&gt;
✓ SMTP with deliverability (retries, DKIM, SPF, inbox placement)&lt;br&gt;
✓ Search across folders &amp;amp; accounts (unified search, no IMAP limits)&lt;br&gt;
✓ Webhooks &amp;amp; event-driven tasks (idempotency, retries, scaling)&lt;br&gt;
✓ Templates &amp;amp; batch operations (without hitting rate limits)&lt;br&gt;
✓ Flaky IMAP recovery (because servers love to disconnect)&lt;/p&gt;

&lt;p&gt;💪 What RustMailer Delivers&lt;br&gt;
🚀 Massive-scale sync — 100s of accounts, zero manual management&lt;br&gt;
🔍 Instant cross-account search — no IMAP roundtrips&lt;br&gt;
⚡ Eventhooks API — extend functionality without modifying core logic&lt;br&gt;
📦 Still just one &amp;lt;60MB binary — no DB, no Redis, no containers needed&lt;br&gt;
If you find this useful, I’d really appreciate a ⭐ on GitHub — it helps more developers discover the project!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>rust</category>
      <category>selfhosted</category>
      <category>github</category>
    </item>
    <item>
      <title>Why I Built RustMailer — A Self-Hosted Email Engine in Rust</title>
      <dc:creator>rustmailer</dc:creator>
      <pubDate>Sat, 19 Jul 2025 15:05:17 +0000</pubDate>
      <link>https://dev.to/rustmailer_39a575ac86abbf/why-i-built-rustmailer-a-self-hosted-email-engine-in-rust-4iph</link>
      <guid>https://dev.to/rustmailer_39a575ac86abbf/why-i-built-rustmailer-a-self-hosted-email-engine-in-rust-4iph</guid>
      <description>&lt;p&gt;Hi everyone 👋&lt;/p&gt;

&lt;p&gt;I’ve been working with email protocols (IMAP, SMTP) for a while — enough to know how painful they can be when you're building something serious. A lot of tools out there either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don’t give you full control,
&lt;/li&gt;
&lt;li&gt;Rely on external services like Redis or heavy databases,
&lt;/li&gt;
&lt;li&gt;Or are simply too expensive to scale.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built &lt;strong&gt;RustMailer&lt;/strong&gt; — clean, async, self-contained, and fast.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠 What is RustMailer?
&lt;/h2&gt;

&lt;p&gt;RustMailer is a &lt;strong&gt;self-hosted email API engine&lt;/strong&gt;, written in &lt;strong&gt;Rust&lt;/strong&gt;, built to sync, send, and manage email with performance and reliability in mind.&lt;/p&gt;

&lt;p&gt;No Redis. No Postgres. No cloud vendor lock-in.&lt;/p&gt;

&lt;p&gt;It supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Multi-account IMAP sync (UID-based, selective folders, date/window range)&lt;/li&gt;
&lt;li&gt;✅ SMTP sending with connection pooling&lt;/li&gt;
&lt;li&gt;✅ Webhooks powered by &lt;a href="https://vrl.dev/" rel="noopener noreferrer"&gt;VRL&lt;/a&gt; (filter/edit payloads before sending)&lt;/li&gt;
&lt;li&gt;✅ gRPC + OpenAPI interfaces with multi-version docs&lt;/li&gt;
&lt;li&gt;✅ Built-in web UI for viewing messages &amp;amp; configuring accounts&lt;/li&gt;
&lt;li&gt;✅ OAuth2 &amp;amp; proxy support for Gmail and other providers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yes — it’s designed for &lt;strong&gt;real production use&lt;/strong&gt;, not just a toy.&lt;/p&gt;




&lt;h2&gt;
  
  
  💰 Why RustMailer?
&lt;/h2&gt;

&lt;p&gt;Because I needed something I could run &lt;strong&gt;cheaply&lt;/strong&gt;, with &lt;strong&gt;full control&lt;/strong&gt;, and &lt;strong&gt;no external dependencies&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;RustMailer runs well on a small VPS with 512MB RAM and 1 CPU.&lt;/p&gt;

&lt;p&gt;It’s &lt;strong&gt;source-available&lt;/strong&gt; and requires a license only if you're using it in production beyond 10 accounts.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Built for Developers
&lt;/h2&gt;

&lt;p&gt;I made RustMailer for people like me — backend developers who don’t want to rebuild email infrastructure over and over again.&lt;/p&gt;

&lt;p&gt;If you’ve ever tried wiring together email sync, delivery, retries, webhooks, and token refresh, you know how chaotic it can get.&lt;/p&gt;

&lt;p&gt;RustMailer handles all of that — so you can focus on building your app.&lt;/p&gt;




&lt;p&gt;That’s it for now. I’ll write more about how it works under the hood soon (OAuth flow, sync strategy, webhook pipeline, etc).&lt;/p&gt;

&lt;p&gt;If you have any questions or want to share your thoughts, feel free to ask in the comments — I’m happy to help and discuss!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;GitHub: &lt;code&gt;github.com/rustmailer/rustmailer&lt;/code&gt;  &lt;/p&gt;

&lt;p&gt;Website: &lt;code&gt;rustmailer.com&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Discord: &lt;code&gt;https://discord.gg/3R4scWCsxK&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
  </channel>
</rss>
