All Projects → networkimprov → mnm-hammer

networkimprov / mnm-hammer

Licence: MPL-2.0 license
mnm implements TMTP protocol. Let Internet sites message members directly, instead of unreliable, insecure email. Contributors welcome! (Client)

Programming Languages

go
31211 projects - #10 most used programming language
Vue
7211 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to mnm-hammer

Mnm
The legitimate email replacement — n-identity, decentralized, store-and-forward, open protocol, open source. (Server)
Stars: ✭ 162 (+145.45%)
Mutual labels:  messaging, xmpp, imap, smtp
django-sitemessage
Reusable application for Django introducing a message delivery framework
Stars: ✭ 51 (-22.73%)
Mutual labels:  messaging, xmpp, 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 (+2536.36%)
Mutual labels:  messaging, imap, smtp
Twisted
Event-driven networking engine written in Python.
Stars: ✭ 4,442 (+6630.3%)
Mutual labels:  xmpp, imap, smtp
Chat Sdk Android
Chat SDK Android - Open Source Mobile Messenger
Stars: ✭ 1,496 (+2166.67%)
Mutual labels:  messaging, xmpp
Mongooseim
MongooseIM is a mobile messaging platform with focus on performance and scalability
Stars: ✭ 1,387 (+2001.52%)
Mutual labels:  messaging, xmpp
Q Municate Ios
Q-municate iOS repository
Stars: ✭ 164 (+148.48%)
Mutual labels:  messaging, xmpp
Chat Sdk Ios
Chat SDK iOS - Open Source Mobile Messenger
Stars: ✭ 813 (+1131.82%)
Mutual labels:  messaging, xmpp
Tigase Server
Highly optimized, extremely modular and very flexible XMPP/Jabber server
Stars: ✭ 170 (+157.58%)
Mutual labels:  messaging, xmpp
Lurch
XEP-0384: OMEMO Encryption for libpurple.
Stars: ✭ 245 (+271.21%)
Mutual labels:  messaging, xmpp
imap-honey
IMAP or SMTP honeypot written in Golang
Stars: ✭ 22 (-66.67%)
Mutual labels:  imap, smtp
Quickblox Javascript Sdk
JavaScript SDK of QuickBlox cloud backend platform
Stars: ✭ 98 (+48.48%)
Mutual labels:  messaging, xmpp
Qmchatviewcontroller Ios
An elegant ready to go chat view controller for iOS applications
Stars: ✭ 75 (+13.64%)
Mutual labels:  messaging, xmpp
enough mail
IMAP, POP3 and SMTP clients for Dart developers. Contains both low level as well as a high level API.
Stars: ✭ 78 (+18.18%)
Mutual labels:  imap, smtp
Matrix-EmailBridge
A bridge written in Golang to receive and write emails in matrix
Stars: ✭ 101 (+53.03%)
Mutual labels:  imap, smtp
Jackal
Instant messaging server for the Extensible Messaging and Presence Protocol (XMPP).
Stars: ✭ 899 (+1262.12%)
Mutual labels:  messaging, xmpp
squirrelmail
🌰️🐿️ SquirrelMail GitHub Repository (PHP 7-OK!)
Stars: ✭ 42 (-36.36%)
Mutual labels:  imap, smtp
Ejabberd
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
Stars: ✭ 5,077 (+7592.42%)
Mutual labels:  messaging, xmpp
Chat
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
Stars: ✭ 8,238 (+12381.82%)
Mutual labels:  messaging, xmpp
PySMS
Simple Python API that that allows you to send texts via SMTP with a best effort approach and process replies via IMAP
Stars: ✭ 19 (-71.21%)
Mutual labels:  imap, smtp

mnm is not mail

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

Learn more at mnmnotmail.org.

Download the mnm client app

Status

09 March 2021 - the online demo is released. It has been tested on Chrome & Firefox.

03 January 2021 - v0.9 is released. It fixes a panic and a few flaws, but is otherwise identical to v0.8.

15 November 2020 - v0.8 is released for Windows 7+ & MacOS & Linux. Its UI has been tested on Chrome & Firefox.
New: Markdown reference panel, "Todo" tag on new threads, menu of filled-form tables, and dozens of other enhancements and fixes.

20 April 2020 - v0.7 is released for Windows 7+ & MacOS & Linux. It has been tested with Chrome & Firefox.
New: slide deck layouts, replication to multiple PCs, simplified startup.

20 October 2019 - v0.6 is released for Windows 7+ & MacOS & Linux. It has been tested with Chrome & Firefox.
New: search, message tags, file viewer, UI colors, logo, and more. Fixes many UI flaws.

29 May 2019 - v0.5 is released. It fixes a panic on Windows, but is otherwise identical to v0.4.

25 May 2019 - v0.4 is released. It has been tested on Windows 7 & MacOS & Linux, with Firefox.
New: Windows support. Fixes a crash-recovery failure, and a TMTP handling error.

13 May 2019 - v0.3 is released. It has been tested on Linux & MacOS, with Firefox.
New: tooltips on menu icons. Fixes a panic, and a handful of UI flaws.

07 May 2019 - v0.2 is released. It has been tested on Linux & MacOS, with Firefox.
New: a tour with cartoons covering essential features.

19 April 2019 - v0.1 is released. It has been tested on Linux & MacOS, with Firefox.

Version Numbering

Production releases: 1+ . 0 . 0+

Preview releases: pp . 1+ . pp (first & last from prior production release)

The second number is only used for previews. Most (hopefully all) preview features & changes appear in the following production release.

Build & Package

Requires Go 1.13.3+

a) go get github.com/networkimprov/mnm-hammer
b) cd $GOPATH/src/github.com/networkimprov/mnm-hammer # project directory can be moved out of $GOPATH
c) ./webdeps.sh # download browser modules
d) Edit kVersionDate in main.go
e) ./pkg.sh # make release downloads for all platforms

Building for Windows requires patches to the Go source (which do not affect other programs):
go-winfsd.patch fixes #32088
go-winstat.patch fixes #9611
Apply patches with: cp go*.patch /.../go && (cd /.../go && git apply go*.patch)

Testing

An automated test sequence is defined in test-in.json. It creates accounts Blue and Gold, which then exchange messages. It yields occasional false positives due to loose synchronization between the two accounts. After a test pass completes, the app provides http on port 8123 (unless --http is given):
./mnm-hammer --test server:port # server:port is a TMTP service
To access a previous test pass:
(cd test-run/TPD/ && ../../mnm-hammer --http :8123) # TPD is a directory name

If the TMTP site at server:port is not configured for optional third party authentication, the test sequence will produce an expect/got message from "local1 local" re "cs" (which can be ignored). The test sequence cannot run against a TMTP site that requires third party authentication.

Crash testing
a) ./mnm-hammer --test server:port --crash init # make test directory
b) ./mnm-hammer --test server:port --crash dir:service:order:op[:sender:order] # crash here in test sequence
c) ./mnm-hammer --test server:port --verify dir:service:order:count # recover and verify result

./test-crash.sh server:port [ item_index ] # collection of crash/verify runs in single directory

Code Coverage

a) go test -c -covermode=count -coverpkg ./...
b) go build
c) ./mnm-hammer.test --test localhost:443 -test.coverprofile mnm-hammer.cov
. . . # this test pass directory is TPD below
d) go tool cover -html=test-run/TPD/mnm-hammer.cov -o web/coverage.html
e) (cd test-run/TPD/ && ../../mnm-hammer --http :8123)
f) Open a browser tab, go to localhost:8123/w/coverage.html

Ref: https://www.elastic.co/blog/code-coverage-for-your-golang-system-tests

Demo Files

To generate the demo files:
a) cp web/{gui.vue,service-demo.html}
b) cp web/docs{,-demo}.html
c) git apply web/*demo.patch

To recreate the web/...-demo.patch files after changing the demo files:
a) git diff --no-index web/gui.vue web/service-demo.html > web/service-demo.patch
b) git diff --no-index web/docs.html web/docs-demo.html > web/docs-demo.patch
c) Edit the patches to use a/web/...-demo.html as the origin path.

To create a JSON object for use in web/data-demo.js from an mnm client instance:
a) Edit web/gui.vue to insert <script src="https://github.com/w/demodata.js"></script> after all other <head> scripts.
b) Quit and restart the app, then Shift-Reload the page at http://localhost:8123.
c) Invoke http://localhost:8123/#demodata and wait while it steps through each account.
d) Open the web console and copy the JSON result.

License

Copyright 2018, 2020 Liam Breck
Published at https://github.com/networkimprov/mnm-hammer

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].