Shell scripts for generating random mail aliases (


% newmail
% HÃ¥kon Robbestad Gylterud

`newmail` is a simple script to generate random e-mail aliases
from the command line for OpenSMTPD on OpenBSD. I wrote this to
avoid having to give out my real e-mail address to every place
which requires registration.

`whichemail` queries the aliases for previously generated e-mails.

## Requirements

 - A working mail server.
 - [`apg`](^[`pkg_add apg`],
   for reasonable looking random addresses,
   available as a package as an [OpenBSD package](^[`pkg_add plan9port`].
 - `rc` and `ssam` from plan9port  also an OpenBSD package.

## Installation

 - [newmail](,
   create new aliases
 - [whichmail](, query existing aliases

Download and copy the above scripts to 

 - `/usr/local/bin/newmail` and 
 - `/usr/local/bin/whichmail`.

**Edit the configuration variables at the top of the script**. Remember to read through the
source files to understand what they do. Then consider applying a few conveniences to
your system configuration.

The following line in `/etc/doas.conf` enables users^[change the group to what-ever fits
your system] to run it:

permit nopass :users as root cmd newmail

For ease of use, I also added the following to `/etc/skel/.profile`
and current users `$HOME/.profile`:

alias newmail='doas newmail'

## Usage

To get a new e-mail address, you simply run `newmail`, with
an optional argument identifying the site you associate with
this address:

~~~~~ $ newmail
And if you later forgot which one you had generated:

~~~~~ $ whichmail

## How does it work?

After running `newmail`, the following lines have been added
to `/etc/mail/aliases`:

# f5cb7a763186dea37d3f98f7ce9bae6a9449587892acd69f89f88bcae71e694f
pemovrypur:     user

The SHA256 in the comment has identifies the user and associated site, and is
used by `whichmail` to look up the addresses.

The changes are loaded by smtpd, and `user` will receive e-mail sent

## Source

The scripts are written in `rc`
(the shell of [Plan9port](
You can easily port them to any other shell your self. The
`newmail` script itself is roughly ten lines.

 - The source repository resides on [DarcsHub](