Giter VIP home page Giter VIP logo

meshmail's Introduction

Alt text

Meshmail is an application and protocol for sending and receiving email messages over a mesh network. It utilizes inexpensive LoRa radios running open source Meshtastic firmware.

The app can be run in either client or relay mode: a relay has internet access and manages connections to IMAP and SMTP servers, while the client has only a connection to the mesh.

When a new message arrives at the relay, it is encoded into a protobuf and then split into numerous fragments--binary blobs that are later reconstituted on the client. After generating the fragments, the relay sends a message shadow to the mesh which informs clients of the existence of the message. The shadow contains a preview of the content (subject and sender), as well as a fingerprint (a unique hashcode id), and the number of fragments used. The client then proceeds to send fragment requests and the relay responds by sending fragment blobs. Once the client has all the expected fragments, it concatenates them and reconstitutes the protobuf. Outbound mail is handled by the same protocol, but with the tag of OUTBOUND indicating to the relay that it needs to be transmitted over SMTP.

Meshmail is currently alpha level code, but fully functional. Future potential improvements may include support for multiple clients on a single relay, more advanced email features like bcc, reply all, and attachments, relay status broadcasts, and tuning of protocol parameters.

Alt text

Alt text Alt text Alt text Alt text

meshmail's People

Contributors

mertrois avatar

Stargazers

Dan Dawson avatar Jeffrey Hulten avatar Andrew Chou avatar Nicolás Pace avatar Francisco Castro avatar  avatar Cale Mooth avatar Cotteux avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.