All Projects → Ousret → hermes

Ousret / hermes

Licence: other
Automates programmables à réaction aux échanges électroniques depuis une boîte IMAP4

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
Dockerfile
14818 projects
Mako
254 projects

Projects that are alternatives of or similar to hermes

Docker Mailserver
Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container.
Stars: ✭ 8,115 (+54000%)
Mutual labels:  mail, imap
Nodejs Mail Notifier
nodejs library to listen incoming mail
Stars: ✭ 136 (+806.67%)
Mutual labels:  mail, imap
Imapcopy
Recursively copy all e-mail messages and folders from one IMAP account to another.
Stars: ✭ 52 (+246.67%)
Mutual labels:  mail, imap
Neutron
Self-hosted server for the ProtonMail client
Stars: ✭ 452 (+2913.33%)
Mutual labels:  mail, imap
Mailu
Insular email distribution - mail server as Docker images
Stars: ✭ 3,151 (+20906.67%)
Mutual labels:  mail, imap
James Project
Emails at the heart of your business logic!
Stars: ✭ 485 (+3133.33%)
Mutual labels:  mail, imap
Mailspring
💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Stars: ✭ 11,953 (+79586.67%)
Mutual labels:  mail, imap
Mailcow Dockerized
mailcow: dockerized - 🐮 + 🐋 = 💕
Stars: ✭ 4,573 (+30386.67%)
Mutual labels:  mail, imap
Maddy
✉️ Composable all-in-one mail server.
Stars: ✭ 2,800 (+18566.67%)
Mutual labels:  mail, imap
Neomutt
✉️ Teaching an Old Dog New Tricks -- IRC: #neomutt on irc.libera.chat
Stars: ✭ 2,343 (+15520%)
Mutual labels:  mail, imap
Sieve
Sieve Script Editor
Stars: ✭ 452 (+2913.33%)
Mutual labels:  mail, imap
imail
small mail server
Stars: ✭ 88 (+486.67%)
Mutual labels:  mail, imap
Mail
Library to send e-mails over different transports and protocols (like SMTP and IMAP) using immutable messages and streams. Also includes SMTP server.
Stars: ✭ 399 (+2560%)
Mutual labels:  mail, imap
Hydroxide
A third-party, open-source ProtonMail CardDAV, IMAP and SMTP bridge
Stars: ✭ 578 (+3753.33%)
Mutual labels:  mail, imap
Rainloop Webmail
Simple, modern & fast web-based email client
Stars: ✭ 3,618 (+24020%)
Mutual labels:  mail, imap
Go Imap
📥 An IMAP library for clients and servers
Stars: ✭ 1,217 (+8013.33%)
Mutual labels:  mail, imap
Excision-Mail
Fullstack, security focused mailserver based on OpenSMTPD for OpenBSD using ansible
Stars: ✭ 108 (+620%)
Mutual labels:  mail, imap
imapx
A cross-platform IMAP library for .NET, supporting .Net 2.0 - 4.5, Mono and Windows Phone
Stars: ✭ 28 (+86.67%)
Mutual labels:  mail, imap
Imapbackup
A Python script for incremental backups of IMAP mailboxes
Stars: ✭ 156 (+940%)
Mutual labels:  mail, imap
Meli
🐝 experimental terminal mail client, mirror of https://git.meli.delivery/meli/meli.git https://crates.io/crates/meli
Stars: ✭ 242 (+1513.33%)
Mutual labels:  mail, imap

Automates programmables IMAP4 pour les humains 👋

Travis-CI Build Badge Codacy Badge License: NPOSL-3.0

Hermès est une divinité issue de la mythologie grecque. Messager des dieux.

hermes

Les noms et logos iTop et Microsoft Exchange sont affichés à titre d'exemple uniquement. N'importe quel service IMAP fonctionne avec Hermes. De même qu'iTop est UN des services sur lequel vous pouvez émettre des requêtes. Hermes n'est pas affilié à Combodo (iTop) ni à Microsoft (Exchange).

Contributions

Merci d'offrir une à ce projet s'il vous a été utile. Encore mieux, participez en :

  • Signalant un problème
  • Proposant un correctif via le système de pull request
  • Proposant des fonctionnalités/idées utiles à tous

🍰 Quel besoin ?

Ce projet est né d'un besoin spécifique qui a laissé entrevoir la possibilité d'un cas bien plus ouvert et générique. Une entreprise peut-être confrontée à cette problématique :

Comment gérer une interopérabilité des services avec n-tiers en se basant uniquement sur les échanges électroniques ?

L'origine est qu'une entreprise utilisant le programme ITSM iTop et l'Incoming Mail (Scanner de boîte mail). La description officielle du module iTop est la suivante : This extension runs in the background to scan the defined mail inbox(es) and either create or update tickets based on the content of the incoming emails.

Avec l'ancienne solution (Incoming Mail):

  1. Identification d'un message très limitée et restreinte
  2. Obligation de créer des dossiers IMAP pour n opération(s)
  3. Les actions du scanner sont limitées à des simples opérations

Ils se sont retrouvés extrêment limitée par l'Incoming Mail.

Hermes offre une solution complète à ce qu'iTop ne peux pas fournir.

Installation

Le projet Hermes s'installe et s'execute très facilement de deux manières. À condition d'avoir :

  • Un compte IMAP et SMTP utilisable
  • Environnement Linux, Unix ou Windows au choix

Quelque soit votre méthode préférée, commencez par :

cd $HOME
git clone https://github.com/Ousret/hermes.git
cd ./hermes
cp configuration.dist.yml configuration.yml

Modifions d'abord la configuration à l'aide de votre éditeur préféré, nano, vim, etc..

nano configuration.yml
PRODUCTION: &production
  <<: *common
  SECRET_KEY: MerciDeMeChangerImmediatementAvantPremierLancement  # Remplacer par une longue chaîne de caractère aléatoire 
  # *-* configuration smtp *-* à utiliser pour envoyer les rapports d'erreurs
  EMAIL_HOST: 'hote-smtp'
  EMAIL_PORT: 587
  EMAIL_TIMEOUT: 10
  EMAIL_USE_TLS: True
  EMAIL_HOST_USER: 'smtp-utilisateur@hote-smtp'
  EMAIL_HOST_PASSWORD: 'secret_smtp'
  EMAIL_FROM: 'smtp-utilisateur@hote-smtp'
  INCIDENT_NOTIFIABLE: '[email protected]' # Remplacer par l'adresse email à laquelle transmettre un rapport d'erreur

Méthode 1 : AVEC Docker

En ayant déjà installé docker et docker-compose sur votre machine, vous n'avez plus qu'à lancer :

docker-compose up

Méthode 2 : SANS Docker

Les pré-requis sont les suivants : python3, pip, nodejs, npm. Optionnellement mariadb-server et mariadb-client.

Il est possible que cette commande nécessite les droits super-utilisateur. (Installation de l'utilitaire yarn)

npm install yarn -g
pip install certifi pyopenssl --user

python setup.py install --user
cd ./hermes_ui
yarn install
yarn build
cd ..

La seconde méthode nécessite de mettre en oeuvre une base de données. Si vous êtes sous mariadb, connectez-vous et créez une base de données hermes.

CREATE DATABASE hermes;

Si vous n'avez pas mariadb, vous pouvez opter pour un système léger sqlite qui ne nécessite rien de plus.

Dans le fichier configuration.yml, modifiez le paramètre suivant :

PRODUCTION: &production
  <<: *common
  SQLALCHEMY_DATABASE_URI: 'mysql://utilisateur:[email protected]/hermes'

Si vous ne souhaitez pas mettre en place mariadb, remplacez par :

PRODUCTION: &production
  <<: *common
  SQLALCHEMY_DATABASE_URI: 'sqlite:///hermes.sqlite'

Pour finir lancer le programme wsgi.py.

python wsgi.py

APRÈS Méthode 1 OU 2

Ouvrir le navigateur à l'adresse suivante : http://127.0.0.1:5000 L'utilisateur par défaut est hermes@localhost et le mot de passe associé est admin. Il est bien entendu sage de le modifier rapidement après la 1ere connexion.

Capture d’écran 2020-01-10 à 15 59 14

Comment ça marche ?

hermes-principes

En bref,

Un message électronique est reçu, nous arrivons, grâce à une suite de critères (depuis un détecteur) à définir la nature du message tout en conservant les résultats de l'évaluation des critères. Ensuite une suite d'actions déterminées par le concepteur s'enchainera en arbre binaire, chaque action se solde par une réussite ou un échec et prend la branche correspondante pour exécuter l'action suivante.

👤 Documentations

Cette section vous propose de prendre en main rapidement Hermes.

Pour aller encore plus loin :

🚧 Maintenance

Ce programme n'est qu'à ses balbutiements. Hermès est stable et disponible pour la production. Ce projet peut être amélioré, des idées d'évolutions significatives sont à l'étude.

Un projet Github est ouvert avec l'ensemble des idées / tâches à réaliser pour rendre ce projet incroyable.

Pour le moment, j'adresse la maintenance concernant les bugs et la sécurité et je relis et j'approuve les contributions soumises.

⬆️ Mise à niveau

Hermès peut être sujet à une mise à jour. Pour ce faire il est possible d'utiliser le script upgrade.sh.

./upgrade.sh

📝 Droits

L'exploitation commerciale est strictement interdite tandis que l'usage interne professionnel est autorisée.

Publication sous "Non-Profit Open Software License 3.0 (NPOSL-3.0)"

Contributeur(s) :

  • Ahmed TAHRI @Ousret, Développeur et mainteneur
  • Didier JEAN ROBERT @SadarSSI, Conception et expression de besoins
  • Denis GUILLOTEAU @Dsniss, Aide à la conception, expression de besoins, testeur, valideur
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].