Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. go-message

go-message

MITGov0.18.2

A streaming Go library for parsing and generating Internet Message Format and mail messages.

GitHubGitHub
456 stars128 forks0 contributors

What is go-message?

go-message is a Go library that implements the Internet Message Format (RFC 5322) and MIME standards (RFC 2045-2047) for parsing and generating email messages and other MIME-formatted data. It provides a streaming API for efficient processing of messages without loading entire contents into memory, solving the problem of handling complex email formats in Go applications.

Target Audience

Go developers building email clients, servers, or processing pipelines that need to handle Internet Message Format and MIME messages. It's particularly useful for those working on mail transfer agents, email filtering systems, or any application that processes email data.

Value Proposition

Developers choose go-message for its comprehensive standards compliance, streaming architecture that enables efficient memory usage, and modular design with dedicated subpackages for specific use cases like mail processing and low-level protocol work.

Overview

✉️ A streaming Go library for the Internet Message Format and mail messages

Use Cases

Best For

  • Building email clients or servers in Go
  • Processing large email archives with streaming APIs
  • Implementing MIME message parsing and generation
  • Adding DKIM support to email applications
  • Working with Internet Message Format (RFC 5322) in Go
  • Creating custom text-based network protocols

Not Ideal For

  • Applications needing built-in SMTP or IMAP client/server functionality
  • Projects focused on email visualization or rich HTML content display
  • Teams preferring libraries with extensive out-of-the-box examples and documentation
  • Systems dealing with non-standard or legacy email formats not covered by RFCs

Pros & Cons

Pros

Efficient Streaming Processing

The streaming API allows handling large email messages without loading entire contents into memory, which is essential for performance in mail servers or processing pipelines.

Comprehensive Standards Compliance

Implements key RFCs like 5322 and 2045-2047, ensuring reliable parsing and generation of Internet Message Format and MIME messages.

Modular and DKIM-Friendly Design

With dedicated subpackages for mail and textproto, and a design that facilitates DKIM integration, it's well-suited for secure and customizable email applications.

Automatic Encoding Handling

Built-in support for character set decoding simplifies dealing with internationalized emails, though full charset support requires an additional import.

Cons

Setup Complexity for Full Features

To decode all character sets, developers must explicitly import a separate package, adding an extra step that can lead to configuration issues.

No Transport Protocol Support

The library focuses solely on message format, so applications need to integrate other libraries like net/smtp for sending or receiving emails, increasing dependency management.

Minimal Documentation

The README is sparse, forcing users to rely on GoDocs or source code exploration for advanced usage, which can slow down development.

Frequently Asked Questions

Quick Stats

Stars456
Forks128
Contributors0
Open Issues24
Last commit1 year ago
CreatedSince 2016

Tags

#mail#streaming-api#go-library#mime#dkim#email-parsing

Built With

G
Go

Included in

Go169.1k
Auto-fetched 14 hours ago

Related Projects

MailHogMailHog

Web and API based SMTP testing

Stars16,094
Forks1,177
Last commit2 years ago
MailpitMailpit

An email and SMTP testing tool with API for developers

Stars9,933
Forks313
Last commit4 days ago
MaddyMaddy

✉️ Composable all-in-one mail server.

Stars6,043
Forks325
Last commit10 days ago
moxmox

modern full-featured open source secure mail server for low-maintenance self-hosted email

Stars5,761
Forks209
Last commit3 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub