Skip to main content

Framework-agnostic messaging library for multi-channel communication.

Project description

python-missive

Bibliothèque Python légère et agnostique pour l'envoi de missives multi-canaux (emails, SMS, notifications push, courrier postal, etc.).

Présentation

python-missive est une bibliothèque Python framework-agnostic qui fournit des providers unifiés pour l'envoi de messages multi-canaux. Elle sert de base à django-missive et peut être utilisée indépendamment dans n'importe quel projet Python.

Fonctionnalités principales

  • 🔌 15+ providers intégrés pour différents canaux de communication
  • 📧 Email : SendGrid, Mailgun, SES, Brevo, SMTP, Django Email
  • 📱 SMS & Voix : Twilio, Vonage, SMSPartner
  • 💬 Messaging : Telegram, Signal, Messenger, Slack, Teams
  • 📮 Courrier postal & LRE : La Poste, Maileva, AR24, Certeurope
  • 🔔 Notifications push : FCM (Firebase), APN (Apple), In-App
  • 🏗️ Architecture modulaire basée sur ProviderKit
  • Framework-agnostic : utilisable avec ou sans framework
  • 🎯 Type hints complets et documentation

Installation

# Installation basique
pip install python-missive

# Avec dépendances pour providers spécifiques
pip install python-missive[email]      # Providers email
pip install python-missive[sms]        # SMS et vocal
pip install python-missive[messaging]  # Telegram, Signal, etc.
pip install python-missive[push]       # FCM, APN
pip install python-missive[postal]     # Courrier postal
pip install python-missive[all]        # Tous les providers

Usage rapide

from pymissive.providers.sendgrid import SendGridProvider

# Configurer le provider
provider = SendGridProvider(config={
    'SENDGRID_API_KEY': 'your-api-key'
})

# Envoyer un email
result = provider.send_email(
    from_email='sender@example.com',
    to_email='recipient@example.com',
    subject='Hello',
    body='<p>Message content</p>'
)

Providers disponibles

Email

  • DjangoEmailProvider - Utilise le backend email Django
  • SMTPProvider - SMTP générique
  • SendGridProvider - SendGrid API
  • MailgunProvider - Mailgun API
  • SESProvider - Amazon SES
  • BrevoProvider - Brevo (ex-Sendinblue)
  • ScalewayProvider - Scaleway Transactional Email

SMS & Voix

  • TwilioProvider - Twilio SMS et appels vocaux
  • VonageProvider - Vonage (ex-Nexmo)
  • SMSPartnerProvider - SMSPartner

Messaging

  • TelegramProvider - Telegram Bot API
  • SignalProvider - Signal Messenger
  • MessengerProvider - Facebook Messenger
  • SlackProvider - Slack
  • TeamsProvider - Microsoft Teams

Courrier postal & LRE

  • LaPosteProvider - La Poste (courrier physique)
  • MailevaProvider - Maileva
  • AR24Provider - AR24 (LRE)
  • CerteuropeProvider - Certeurope

Notifications push

  • FCMProvider - Firebase Cloud Messaging
  • APNProvider - Apple Push Notification
  • InAppNotificationProvider - Notifications in-app

Architecture

La bibliothèque utilise ProviderKit pour la gestion des providers :

from pymissive.providers import get_missive_providers

# Découvrir tous les providers disponibles
providers = get_missive_providers()

# Filtrer par type de service
email_providers = [p for p in providers if 'email' in p.services]

Documentation

Pour plus de détails, consultez la documentation dans le dossier docs/ :

  • docs/purpose.md - Objectifs et architecture du projet
  • docs/structure.md - Structure des modules et organisation
  • docs/development.md - Guidelines de développement
  • docs/AI.md - Contrat pour assistants IA

Développement

# Créer un environnement virtuel
python service.py dev venv

# Installer en mode développement
python service.py dev install-dev

# Exécuter les tests
python service.py dev test

# Formater le code
python service.py dev format

# Lancer tous les checks qualité
python service.py quality check

Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymissive-1.0.0.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pymissive-1.0.0-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file pymissive-1.0.0.tar.gz.

File metadata

  • Download URL: pymissive-1.0.0.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pymissive-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e8d5b87e120dd8dc0235e373d21cf68c3b8a17b3360ee47f72f2235d81bd1463
MD5 fdc790dd3ce13275a65138adc737968a
BLAKE2b-256 bac484e01c20aa0a62d52094a4718dd9f88b295b9c51716951c1e5bf107c5795

See more details on using hashes here.

File details

Details for the file pymissive-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pymissive-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pymissive-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf3259e55ceb50b4abd78359e6855c0e650a251e9e27f08f6dbaeb80f0155aa1
MD5 5f04ba12fc1ec2f5750ef8920887041c
BLAKE2b-256 f7c40c7611f5c4ea978735ed0baa8d3eb85f43627181f84196a46bf840645ba9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page