All Projects → eXeC64 → Nanolist

eXeC64 / Nanolist

Licence: bsd-3-clause
mailing lists - the unix way

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Nanolist

Sendria
Sendria (formerly MailTrap) is a SMTP server designed to run in your dev/test environment, that is designed to catch any email you or your application is sending, and display it in a web interface instead of sending to real world.
Stars: ✭ 30 (-80.39%)
Mutual labels:  email, smtp
Mailway
Mailway installer, host your own Mailway instance
Stars: ✭ 94 (-38.56%)
Mutual labels:  email, smtp
Mailer
A lightweight PHP SMTP mail sender
Stars: ✭ 53 (-65.36%)
Mutual labels:  email, smtp
Deltachat Desktop
Email-based instant messaging for Desktop.
Stars: ✭ 526 (+243.79%)
Mutual labels:  email, smtp
Mailinabox
Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box.
Stars: ✭ 10,649 (+6860.13%)
Mutual labels:  email, smtp
Exim
Exim Mail Transport Agent - source, testsuite and documentation
Stars: ✭ 545 (+256.21%)
Mutual labels:  email, smtp
Opaquemail
.NET email library and proxy supporting IMAP, POP3, and SMTP with S/MIME and PGP.
Stars: ✭ 91 (-40.52%)
Mutual labels:  email, smtp
Blastula
Easily send great-looking HTML email messages from R
Stars: ✭ 394 (+157.52%)
Mutual labels:  email, smtp
Bamboo smtp
An SMTP adapter for Bamboo.
Stars: ✭ 111 (-27.45%)
Mutual labels:  email, smtp
Cli
Get a programmable email address. Automate what happens when you receive emails. It's like Zapier for devs who hate emails.
Stars: ✭ 105 (-31.37%)
Mutual labels:  email, smtp
Check If Email Exists
Check if an email address exists without sending any email, written in Rust.
Stars: ✭ 497 (+224.84%)
Mutual labels:  email, smtp
Magma
The magma server daemon, is an encrypted email system with support for SMTP, POP, IMAP, HTTP and MOLTEN,. Additional support for DMTP and DMAP is currently in active development.
Stars: ✭ 1,740 (+1037.25%)
Mutual labels:  email, smtp
Salmon
A Python Mail Server
Stars: ✭ 482 (+215.03%)
Mutual labels:  email, smtp
Lettre
a mailer library for Rust
Stars: ✭ 713 (+366.01%)
Mutual labels:  email, smtp
Mailkit
A cross-platform .NET library for IMAP, POP3, and SMTP.
Stars: ✭ 4,477 (+2826.14%)
Mutual labels:  email, smtp
Tcpbin
Very crude and poorly written HTTP(s) and SMTP bin
Stars: ✭ 85 (-44.44%)
Mutual labels:  email, smtp
Phpmailer
The classic email sending library for PHP
Stars: ✭ 17,485 (+11328.1%)
Mutual labels:  email, smtp
Deltachat Core Rust
Delta Chat Rust Core library, used by Android/iOS/desktop apps and bindings
Stars: ✭ 300 (+96.08%)
Mutual labels:  email, smtp
Mailmergelib
MailMergeLib is a mail message client library which provides comfortable mail merge capabilities for text, inline images and attachments, as well as good throughput and fault tolerance for sending mail messages.
Stars: ✭ 97 (-36.6%)
Mutual labels:  email, smtp
Fluentemail
All in one email sender for .NET. Supports popular senders (SendGrid, MailGun, etc) and Razor templates.
Stars: ✭ 1,888 (+1133.99%)
Mutual labels:  email, smtp

nanolist

nanolist is a lightweight mailing list manager written in Go. It's easy to deploy, and easy to manage. It was written as an antithesis of the experience of setting up other mailing list software.

Usage

nanolist is controlled by emailing nanolist with a command in the subject.

The following commands are available:

  • help - Reply with a list of valid commands
  • lists - Reply with a list of available mailing lists
  • subscribe list-id - Subscribe to receive mail sent to the given list
  • unsubscribe list-id - Unsubscribe from receiving mail sent to the given list

Frequently Asked Questions

Is there a web interface?

No. If you'd like an online browsable archive of emails, I recommend looking into tools such as hypermail, which generate HTML archives from a list of emails.

If you'd like to advertise the lists on your website, it's recommended to do that manually, in whatever way looks best. Subscribe buttons can be achieved with a mailto: link.

How do I integrate this with my preferred mail transfer agent?

I'm only familiar with postfix, for which there are instructions below. The gist of it is: have your mail server pipe emails for any mailing list addresses to nanolist message. nanolist will handle any messages sent to it this way, and reply using the configured SMTP server.

Why would anyone want this?

Some people prefer mailing lists for patch submission and review, some people want to play mailing-list based games such as nomic, and some people are just nostalgic.

Installation

First, you'll need to build and install the nanolist binary: go get github.com/eXeC64/nanolist

Second, you'll need to write a config to either /etc/nanolist.ini or /usr/local/etc/nanolist.ini as follows:

You can also specify a custom config file location by invoking nanolist with the -config flag: -config=/path/to/config.ini

# File for event and error logging. nanolist does not rotate its logs
# automatically. Recommended path is /var/log/mail/nanolist
# You'll need to set permissions on it depending on which account your MTA
# runs nanolist as.
log = /path/to/logfile

# An sqlite3 database is used for storing the email addresses subscribed to
# each mailing list. Recommended location is /var/db/nanolist.db
# You'll need to set permissions on it depending on which account your MTA
# runs nanolist as.
database = /path/to/sqlite/database

# Address nanolist should receive user commands on
command_address = [email protected]

# SMTP details for sending mail
smtp_hostname = "smtp.example.com"
smtp_port = 25
smtp_username = "nanolist"
smtp_password = "hunter2"

# Create a [list.id] section for each mailing list.
# The 'list.' prefix tells nanolist you're creating a mailing list. The rest
# is the id of the mailing list.

[list.golang]
# Address this list should receieve mail on
address = [email protected]
# Information to show in the list of mailing lists
name = "Go programming"
description = "General discussion of Go programming"
# bcc all posts to the listed addresses for archival
bcc = [email protected], [email protected]

[list.announcements]
address = [email protected]
name = "Announcements"
description = "Important announcements"
# List of email addresses that are permitted to post to this list
posters = [email protected], [email protected]

[list.fight-club]
address = [email protected]
# Don't tell users this list exists
hidden = true
# Only let subscribed users post to this list
subscribers_only = true

Lastly, you need to hook the desired incoming addresses to nanolist:

In /etc/aliases:

nanolist: "| /path/to/bin/nanolist message"

And run newaliases for the change to take effect.

This creates an alias that pipes messages sent to the nanolist alias to the nanolist command.

The final step is telling your preferred MTA to route mail to this address when needed.

For postfix edit /etc/postfix/aliases and add:

[email protected] nanolist
[email protected] nanolist
[email protected] nanolist
[email protected] nanolist

and restart postfix.

Congratulations, you've now set up 3 mailing lists of your own!

License

nanolist is made available under the BSD-3-Clause license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].