An Elixir library for sending email via SMTP with a clean API and powerful features.
Mailman is an Elixir library that enables sending emails from Elixir applications via SMTP. It provides a clean API for defining mailers, supporting features like multi-part emails, attachments, template rendering, and advanced SMTP configuration. It solves the problem of integrating email functionality directly with SMTP servers in a structured, Elixir-native way.
Elixir developers who need to send emails directly through SMTP relays, particularly those working with custom or on-premise email infrastructure rather than commercial email services.
Developers choose Mailman for its direct, low-level SMTP control wrapped in a clean Elixir API, its longevity in the ecosystem, and its focus on power users who require reliability and comprehensive email features without external service dependencies.
Mailman provides a clean way of defining mailers in your Elixir applications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multi-part emails with plain text, HTML, and inline images, plus attachments with semi-automatic MIME type detection, covering most standard email needs directly from the README.
Provides a clean Elixir wrapper around the battle-tested gen_smtp library, enabling fine-grained SMTP configuration with TLS and authentication options for power users.
Uses EEx templates for dynamic email content generation, seamlessly integrating with Elixir's templating system for easy and familiar rendering.
Includes automatic CC and BCC delivery, custom headers, and delivery timestamps, offering robust email functionality without external dependencies.
Focused solely on SMTP, it lacks built-in adapters for commercial email services, forcing manual workarounds if using platforms like SendGrid or Mailgun.
Requires setting up a detailed context struct with SMTP config, which can be more involved compared to libraries with simpler APIs or default settings, as seen in the example code.
As an older library, it may not have the same level of community support, plugins, or modern features as alternatives like Bamboo or Swoosh, which offer more abstractions.