itoomail, a direct Eep2Eep mailing server

itoomail is a basic mail server that can be used to send and receive mails directly into an I2P server hosting itoomail (or a similar server).

Setup

itoomail is designed to be (somewhat) easy to setup:

  • Ensure that your I2P router has it's SAM port open.
    This can be done by starting (and ticking Run-at-startup) on Java I2P settings or setting enabled key under sam section of your I2Pd config to true and restarting I2Pd.
  • Generate a private key for itoomail to use.
    A way to do this is to use the SAM bridge with this command: echo -e "HELLO VERSION MIN=3.1 MAX=3.3\nDEST GENERATE SIGNATURE_TYPE=7\nQUIT" | nc 127.0.0.1 7656 | sed -e s/' '/'\n '/g and noting down the PUB and PRIV responses.
    Save the PUB field under /.well-known/i2pmail.key of your site you want to host your mail server under.
  • (Optionally) Make a seperate user/group for itoomail to run under.
  • (If not launching as root) Make a directory for itoomail to use as it's datadir.
    Save the PRIV response from earlier to the privkey.dat of this directory.
    If needed, chown/chgrp this directory to the user/group of itoomail.
  • Make a configuration file as follows:
datadir=/var/lib/itoomail
logfile=/var/log/itoomail.log
pidfile=/var/run/itoomail.pid
[daemon]
loglevel=INFO
user=itoomail
group=itoomail
[ports]
smtp=2500
pop=7165
sam=7656

[service]
adminuser=root
adminpass=adminnimda
hostname=myownsite.i2p
allowed_users=root,git,myownsite

Replace the fields as necessary. If itoomail starts acting weird/crashing then use the DEBUG loglevel to file a bug report.

  • Run itoomail as either root or the wanted user.
    If running as non-root then the log/pid/datadir must've been created as explained above.
    Otherwise itoomail will create as necessary before changing to the user configured.
  • You should see a line like itoomail vx.y.z ready to accept invisible mails (it may be buried under DEBUG logs if enabled).
  • Start sending mails to the defined SMTP/POP ports with the address being you site.
    Like setting name to MyOwnSite and address to myownsite@myownsite.i2p.
    If the destination eepsite has an email server set up like this then your mail shall go through without any problems.
  • Have fun!

(Known) Limitations

  • Can't send/receive from/to Postman's mail.i2p.
    A feature mapping itoomail users to mail.i2p users will be implemented in the near future.
  • Can't (and won't) send/receive from/to clearnet sites or hosts.
  • Inability to control itoomail while it's running.
    A console-like thing for mails going to "itoomail-system" from the admin account (as the config above) is planned.
  • Unable to recover from a SAM disconnect making the server a half-zombie until restarted.

itoomail is an implementation of the Eep2Eep mail server idea of me at here.

Description
itoomail is an simple (enough) server to send mails directly to/from an I2P server
Readme 303 KiB
Languages
C 94.5%
Makefile 5.5%