Koshroy / nmail

Send and Receive Mail via NNCP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nmail: Send and Receive Mail via NNCP

Overview

nmail lets you send and receive mail via NNCP. nmail assumes that all NNCP nodes live in a single TLD .nncp. nmail works in conjunction with your MTA to route mail messages meant for a .nncp address to a neighbor node through nncp-exec. nmail also has a receiving mode which munges headers in the incoming mail so that replies to the mail from your MUA should be routed to an appropriate .nncp domain, which can then be routed by nmail and nncp-exec to your destination.

Building

Simply run:

make

and as long as you have a version of Make and Go compiler version 1.13 or higher, you should have an executable named nmail in the current directory.

Usage

Send Mode

In send mode, nmail receives mail on standard input and then sends the mail to a destination node. nmail is meant to be used in conjunction with your MTA.

CLI Usage

nmail <-handle [sendmail]> <send> <user@neighbor.nncp>

<send> and <-handle foo> is optional. This will take standard input, parse it as an email, change the To header into an ID form to prevent leaking any alias related metadata, and then invoke the handle on the destination node. By default it invokes the sendmail handle, but the handle can be set to anything if the neighbor node's handle differs.

On the remote end, your MTA should be configured to accept this mail and route it to the local user user as specified in the argument.

Examples

nmail alice@aliceserver.nncp

This invokes sendmail with standard input on aliceserver.

nmail send alice@aliceserver.nncp

This does the same as above.

nmail -handle nmail alice@aliceserver.nncp

This sends standard input to the handle nmail on aliceserver.

Receive Mode

In receive mode, nmail reads mail from nncp on standard input and munges the From header to an address that can be replied to using nmail, and then outputs the new mail to standard output. To have nmail deliver mail after receipt, you can pipe standard output to sendmail and have it sent to your local MTA.

CLI Usage

nmail [receive|recv] <recipient>

Examples

nmail receive

or

nmail recv

outputs the incoming mail to standard output.

nmail receive | sendmail "$1"

This receives mail from nncp and then pipes it to sendmail and sends it to $1. An example of this usage is provided in the contrib/ folder and can be used to receive mail.

Contrib Scripts

contrib/ has two scripts, one which wraps nmail and can send mail, (nmsend.sh) and one which wraps nmail and can receive mail (nmrecv.sh). These scripts can be used to interact with your MTA.

About

Send and Receive Mail via NNCP

License:GNU General Public License v3.0


Languages

Language:Go 96.9%Language:Shell 2.3%Language:Makefile 0.9%