-
Notifications
You must be signed in to change notification settings - Fork 3
ian-kent/M3MTA
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
M3MTA
=====
An experimental mail transfer agent using Mojo::IOLoop and MongoDB.
For development use only. Do NOT use this MTA in a production environment.
CURRENT SUPPORT
---------------
SMTP
- RFC5321 Basic and Extended SMTP
- supports EHLO, HELO, MAIL, RCPT, DATA, RSET and NOOP commands
- RFC1870 SIZE
- optionally broadcast SIZE with maximum message size
- maximum message size check on MAIL command
- maximum local mailbox size check on RCPT command
- enforcement of MAIL SIZE on DATA command
- RFC2195 SASL CRAM-MD5
- implements the SASL CRAM-MD5 mechanism for RFC4954
- RFC2487 TLS
- implements and broadcasts STARTTLS support
- optionally require a TLS connection for remote delivery
- optionally require a TLS connection for all (including local) delivery
- RFC2920 PIPELINING
- broadcasts PIPELINING support
- RFC3461 DSN
- partial support for delivery status notifications
- RFC4616 SASL PLAIN
- implements the SASL PLAIN mechanism for RFC4954
- RFC4954 AUTH
- implements and broadcasts AUTH support
MDA
- Local user message delivery to MongoDB backend
- Aliasing to local or remote addresses (including alias chains)
- Catch-all mailboxes and aliases
- Remote message delivery via SMTP
- Relay only domains for backup MX
- Configurable retry times and notifications
- Mailbox size limits
- Message filtering at time of delivery
- SpamAssassin already built in
IMAP
- IMAP4rev1
- TLS
Scalability:
- Multiple IMAP, SMTP or MDA daemons can be started
- Configure MongoDB to use sharded collections and replica sets
REQUIREMENTS
------------
You'll need:
- Perl (preferably 5.16 or later)
- MongoDB
- SpamAssassin (if you want to use it, otherwise remove from config)
- CPAN modules:
Digest::MD5
Digest::HMAC_MD5
Hash::Merge
IO::Socket::SSL
JSON
Log::Log4perl
Mail::SpamAssassin
MIME::Base64
Mojolicious (4.14 or later)
MojoX::IOLoop::Server::StartTLS
MongoDB
Net::DNS::Resolver
Readonly
Text::Xslate
INSTALLATION
------------
Run 'make install'.
M3MTA will be installed to /usr/bin, /etc/m3mta and
/usr/lib/m3mta by default.
If you're using M3MTA in command line daemon mode,
you'll need to create /var/log/m3mta and /var/run/m3mta
before use.
In console mode, no log file or PID file are required.
MONGODB
-------
See demo.js and config files in ./etc
STARTING M3MTA
--------------
Start IMAP, SMTP and MDA:
m3mta start
Stop IMAP, SMTP and MDA:
m3mta stop
To use M3MTA without the m3mta command, you need to
add /usr/lib/m3mta to PERL5LIB.
Start server or MDA in daemon mode:
m3mta-imap start --daemon
m3mta-smtp start --daemon
m3mta-mda start --daemon
Stop server or MDA in daemon mode:
m3mta-imap stop
m3mta-smtp stop
m3mta-mda stop
Start server or MDA in console mode:
./bin/m3mta-imap
./bin/m3mta-smtp
./bin/m3mta-mda
Use Ctrl<C> to stop.
CONFIGURATION
-------------
Edit files in /etc/m3mta/
M3MTA (c) Ian Kent, 2013 - http://github.com/ian-kent/About
Experimental Mojolicious IOLoop mail transfer agent with MongoDB backend
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published