yamn - An anonymous remailer application


[-m] [-s] [-l rem1,rem2,rem3,...] [-t user@host] [-s subject] [-c num] [recipient] filename

[-M] [-D] [-s]


Yamn (Yet another Mix network) is an anonymous remailer. Remailers provide protection against traffic analysis and allow sending mail anonymously or pseudonymously.

In the non-interactive mode, Yamn reads a message from its standard input or from a Maildir. Destination address and input file can be specified in the command line. If no address is given in the command line, the input file is expected to contain a message complete with mail headers.


-c, --copies=num

When operating in client mode, define how many copies of each message should be sent. Multiple copies share the same exit-remailer which retains a list of processed Packet-IDs, ensuring that only a single copy is delivered. This setting overrides the default config Stats/Numcopies option (default: 1).


Specify an alternate configuration file. This flag overrides the YAMNCFG environment variable which, in turn, overrides the default which expects a yamn.cfg file to exist in the same directory as the yamn binary.

-D, --daemon

Start a remailer in an endless loop of reading, processing and sending messages. This option only has meaning when used with the -M option.

-l, --chain=rem1,rem2,rem3,...

Use the defined chain to route the message through the Yamn network. Random nodes can be selected with asterisks. E.g. --chain="*,*,*". If multiple copies are specified, all copies must share a common exit remailer.

-m, --mail

Operate in client mode and inject a plain-text message into the Yamn pool

-M, --remailer

Operate in server mode. Normally used in combination with -D to continuously process, otherwise only a single iteration of read, process, send will be performed.

-R, --read-mail

Read the message from the STDIN pipe instead of from a file or Maildir.

-s, --subject=subject

Specify a Subject header for the message. If this isn’t defined, the Subject is expected to be defined within the message.

-S, --send

Flush the outbound pool. Useful for client mode and remailer testing but should not be used on an in-production remailer.


Pipe the output message to STDOUT instead of storing it in the Pool.

-t, --to=user@host

Specify a recipient for the message. If this option isn’t defined, the recipient is expected to be included in the message itself.


Yamn, by default, reads its configuration from the file yamn.cfg in its working directory. This behaviour can be overridden using the --config option defined above. The file consists of name=value pairs, grouped into sections.

Files section:

Path to the public keyring file. Default: pubring.mix.


Path to the remailer statistics file. Default: mlist2.txt.


Path to the remailer’s public key file. Default: key.txt.


Path to the remailer’s secret keyring file. Default: secring.mix.


Path to the remailer-generate secret keyring file. This file is updated as new keys are generated and old keys expire. If the operator deems fit, the Secring file can be overwritten by this constantly revised version. Default: secring.new.


Path to the operator’s personal PGP Public Key. If this file exists, it will be sent in response to client remailer-adminkey requests. Default: adminkey.txt.


Path to the remailer help file. This will be sent in response to a remailer-help request. Default: help.txt.


Path to the directory that will be used for storing inbound and outbound remailer messages. Default: pool.


Path to the Maildir folder the remailer will read inbound messages from. Default: Maildir.


Path to the directory that will host the ID Log Database. Default: idlog.


Path to the director hosting the Chunk Database. Default: chunkdb.

Urls section:
Yamn has the capability to pull stats and key sources from URLs published by pingers. The following settings determine which source URLS should be used if periodic downloading is required.


Should Yamn attempt to retrieve stats/keys at periodic intervals? Default: yes


URL of a Public Keyring source. See also Files/Pubring for the default save location of the downloaded file. Default: http://www.mixmin.net/yamn/pubring.mix.


URL of an Mlist2 style stats source. See also Files/Mlist2 for the default save location of the download files. Default: http://www.mixmin.net/yamn/mlist2.txt.

Mail section
Special attention should be paid to this section. Without a knowledge of how to send outbound email, both clients and remailers cannot function.

If set to "yes", outbound messages will be written to the queue directory instead of mailing them. This overrides all other delivery options. Default: No.


Boolean (yes/no) option to determine if Yamn’s internal sendmail function should be used to deliver messages. If set to yes, the settings SMTPRelay, SMTPUsername and SMTPPassword MUST be defined.

If set to no, the server will to use standard SMTP relay instead. This is potentially a good option if delivering mail to a local MTA or any one where authentication is not required. The SMTPRelay option defines where messages should be relayed to.


Hostname that mail should be relayed to. Default:


Used in combination with SMTPRelay to define the port number of the SMTP service. Default: 25.


If this option is specified, messages will be piped to an external command for mail delivery. A common example being: /usr/sbin/sendmail -t. This overrides the Sendmail option described above. Default: None


The sender address the remailer will use on outbound messages. This applies to all inter-remailer messages and to final-recipient messages if no user-defined sender is specified. Default: nobody@nowhere.invalid.

Stats section


When constructing chains with random nodes, only those exceeding this minimum percentage uptime will be considered. Default: 98.0


When constructing chains with a random exit node, only those exceeding this minimum percentage uptime will be considered for the final hop. Default: 99.0


The minimal latency (in minutes) the local remailer or client will consider when building a chain that contains one or more random nodes. Default: 2


The highest latency (in minutes) the local remailer or client will consider when building a chain that contains one or more random nodes. Default: 60