Skip to main content

Provider-abstracted email SDK for Herfy applications — send via Control Center credentials

Project description

herfy-email

Provider-abstracted email SDK for Herfy applications. Send transactional email using only your Control Center client_id and client_secret — no email provider credentials in app config.

Installation

pip install herfy-email[mailgun]

Usage

from herfy_email import HerfyEmailClient, AsyncHerfyEmailClient

# Sync
client = HerfyEmailClient.from_credentials(
    client_id="app_pettycash",
    client_secret="your_secret",
    control_center_url="https://cc.herfy.com",
)
client.send(to="user@herfy.com", subject="Hello", html="<p>Hello</p>", text="Hello")

# Async (FastAPI)
client = AsyncHerfyEmailClient.from_credentials(
    client_id="app_pettycash",
    client_secret="your_secret",
    control_center_url="https://cc.herfy.com",
)
await client.send(to="user@herfy.com", subject="Hello", html="<p>Hello</p>", text="Hello")

# From environment variables (CC_CLIENT_ID / AUTH_CLIENT_ID, CC_CLIENT_SECRET / AUTH_CLIENT_SECRET, CC_URL / CONTROL_CENTER_URL)
client = HerfyEmailClient.from_env()

How it works

  1. SDK authenticates with Control Center via POST /api/app-auth/token (cached, TTL 300s)
  2. SDK fetches provider config from GET /api/config/email (cached for process lifetime)
  3. SDK calls the configured provider (Mailgun, SendGrid, …) directly

Switching email providers requires only a Control Center env-var change — zero app changes.

Provider support

Provider Extra
Mailgun pip install herfy-email[mailgun]
SendGrid pip install herfy-email[sendgrid]

Control Center configuration

EMAIL_PROVIDER=mailgun
MAILGUN_API_KEY=key-xxxxxxxxxxxxxxxxxxxxxxxx
MAILGUN_DOMAIN=mg.herfy.com
MAILGUN_FROM_ADDRESS=noreply@herfy.com

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

herfy_email-0.1.1.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

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

herfy_email-0.1.1-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file herfy_email-0.1.1.tar.gz.

File metadata

  • Download URL: herfy_email-0.1.1.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for herfy_email-0.1.1.tar.gz
Algorithm Hash digest
SHA256 edce99c73a0e1571a685144d8774d1b369aba7d921f9d851df8fd3550470e77f
MD5 e0332083fbe07fc71772498d7a640dc5
BLAKE2b-256 aaf0467285e72e03e322331fb0ddf6991753fafd749a0e750e61852723a6b6f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for herfy_email-0.1.1.tar.gz:

Publisher: publish-email-sdk.yml on Herfy-Food-Services/herfy-shared-library

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file herfy_email-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: herfy_email-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for herfy_email-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8d27c196c750759a532f67b710740fb057c06e96cdc595dc8c3b18da78990d54
MD5 1b17ff708d1b3076fdc27dbed644299a
BLAKE2b-256 811f070825715fb76839c28966eb1ced069c2bd717282a096e9dd600beeb0db0

See more details on using hashes here.

Provenance

The following attestation bundles were made for herfy_email-0.1.1-py3-none-any.whl:

Publisher: publish-email-sdk.yml on Herfy-Food-Services/herfy-shared-library

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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