All Projects → networkimprov → Mnm

networkimprov / Mnm

Licence: mpl-2.0
The legitimate email replacement — n-identity, decentralized, store-and-forward, open protocol, open source. (Server)

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Mnm

mnm-hammer
mnm implements TMTP protocol. Let Internet sites message members directly, instead of unreliable, insecure email. Contributors welcome! (Client)
Stars: ✭ 66 (-59.26%)
Mutual labels:  messaging, xmpp, imap, smtp
Magma
The magma server daemon, is an encrypted email system with support for SMTP, POP, IMAP, HTTP and MOLTEN,. Additional support for DMTP and DMAP is currently in active development.
Stars: ✭ 1,740 (+974.07%)
Mutual labels:  email, messaging, smtp, imap
Deltachat Core Rust
Delta Chat Rust Core library, used by Android/iOS/desktop apps and bindings
Stars: ✭ 300 (+85.19%)
Mutual labels:  chat, email, smtp, imap
Deltachat Desktop
Email-based instant messaging for Desktop.
Stars: ✭ 526 (+224.69%)
Mutual labels:  chat, email, smtp, imap
Quickblox Ios Sdk
QuickBlox iOS SDK for messaging and video calling
Stars: ✭ 373 (+130.25%)
Mutual labels:  chat, messaging, xmpp
Chatsecure Ios
ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.
Stars: ✭ 3,044 (+1779.01%)
Mutual labels:  chat, messaging, xmpp
Mailkit
A cross-platform .NET library for IMAP, POP3, and SMTP.
Stars: ✭ 4,477 (+2663.58%)
Mutual labels:  email, smtp, imap
django-sitemessage
Reusable application for Django introducing a message delivery framework
Stars: ✭ 51 (-68.52%)
Mutual labels:  messaging, xmpp, smtp
Twisted
Event-driven networking engine written in Python.
Stars: ✭ 4,442 (+2641.98%)
Mutual labels:  smtp, xmpp, imap
Q Municate Ios
Q-municate iOS repository
Stars: ✭ 164 (+1.23%)
Mutual labels:  chat, messaging, xmpp
Jackal
Instant messaging server for the Extensible Messaging and Presence Protocol (XMPP).
Stars: ✭ 899 (+454.94%)
Mutual labels:  chat, messaging, xmpp
ESP-Mail-Client
⚡️Arduino Mail Client Library to send, read and get incoming mail notification for ESP32, ESP8266 and SAMD21 devices. The library also supported other Arduino devices using Clients interfaces e.g. WiFiClient, EthernetClient, and GSMClient.
Stars: ✭ 78 (-51.85%)
Mutual labels:  email, imap, smtp
yggmail
End-to-end encrypted email for the mesh networking age
Stars: ✭ 72 (-55.56%)
Mutual labels:  email, imap, smtp
Chat
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
Stars: ✭ 8,238 (+4985.19%)
Mutual labels:  chat, messaging, xmpp
Qmchatviewcontroller Ios
An elegant ready to go chat view controller for iOS applications
Stars: ✭ 75 (-53.7%)
Mutual labels:  chat, messaging, xmpp
Quickblox Javascript Sdk
JavaScript SDK of QuickBlox cloud backend platform
Stars: ✭ 98 (-39.51%)
Mutual labels:  chat, messaging, xmpp
Mailu
Insular email distribution - mail server as Docker images
Stars: ✭ 3,151 (+1845.06%)
Mutual labels:  email, smtp, imap
Tigase Server
Highly optimized, extremely modular and very flexible XMPP/Jabber server
Stars: ✭ 170 (+4.94%)
Mutual labels:  chat, messaging, xmpp
Ejabberd
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
Stars: ✭ 5,077 (+3033.95%)
Mutual labels:  chat, messaging, xmpp
Opaquemail
.NET email library and proxy supporting IMAP, POP3, and SMTP with S/MIME and PGP.
Stars: ✭ 91 (-43.83%)
Mutual labels:  email, smtp, imap

mnm is not mail

The mnm project is building a legitimate replacement for email: a server (see below), a client, and a simple protocol between them.

Learn more at mnmnotmail.org.

Download the mnm client app

Server status

11 December 2020 - v0.1 is released for Linux!

13 April 2019 - A private preview is now live! Contact the author if you'd like to try it.

19 August 2018 - After testing with mnm client, made a handful of fixes. Changed license to MPL.

25 September 2017 - A client application is in development.

3 August 2017 - A simulation of 1000 concurrent active clients delivers 1 million messages totaling 6.7GB in 46 minutes. It uses ~200MB RAM, <10MB disk, and minimal CPU time. Each client runs a 19-step cycle that does login, then post for two recipients (15x) or for a group of 100 (2x) every 1-30s, then logout and idle for 1-30s.

Quick start

  1. Download binary or build from source
    a) Get mnm-tmtpd-linux-amd64-v0.1.0.tgz
    b) Extract with tar xzf mnm-tmtpd-linux-amd64-v0.1.0.tgz
    or
    a) go get github.com/networkimprov/mnm

  2. Enable TCP+TLS with self-signed certificate
    a) cd mnm
    b) openssl ecparam -genkey -name secp384r1 -out server.key
    c) openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
    d) cp mnm.conf mnm.config # edit to revise ntp.hosts and adjust listen.laddr with "host:port"

    Note: On a public Internet host, port 443 will see a steady trickle of probe requests (often with malicious intent) which pollutes the mnm log. Choose a port above 1024 to avoid this.

  3. Run server
    a) ./mnm # default port 443 may require sudo ./mnm; logs to stdout & stderr
    b) Ctrl-C to stop
    or
    a) ./mnm >> logfile 2>&1 & # run in background, logs to end of logfile
    b) kill -s INT <background_pid> # send SIGINT signal, triggering graceful shutdown

  4. Distribute the server address to users
    +  For a self-signed certificate, the address is =address:port
    +  For a proper certificate, the address is +address:port
    +  Examples: =192.168.1.2:3456 and +example.com:443

Build & package

Assuming this repository has been obtained via git clone:

a) cd mnm
b) git stash # if required
c) git checkout <your_branch>
d) Edit kVersionDate in main.go
e) ./pkg.sh # make release downloads

Testing

Continuous test sequence with simulated clients
a) ./mnm 10 # may be 2-1000
b) ctrl-C to stop

What's here

  • codestyle.txt: how to make Go source more clear
  • qlib/: TMTP implementation
  • test.json: qlib test data
  • userdb.go: user & group records management
  • userdb-test.go: userdb test procedure
  • main.go: main(), network frontend
  • mnm.conf: site-specific parameters; rename to mnm.config to enable TCP server
  • mnm: the server executable
  • After first run:
    userdb/: user & group data
    qstore/: queued messages awaiting delivery

License

Copyright 2020 Liam Breck
Published at https://github.com/networkimprov/mnm

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].