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.0.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.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: herfy_email-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 3aa6e654753727bbf46c17086dcab97a64a1c14c7de186e10bfd591074f4fb8c
MD5 9c3b2dafe5bde6d94b8ffcd659d1a6b7
BLAKE2b-256 a3a368e424adea1a8642d1bc4ad42bc7aa44d27492462015cdd898f6a176a7f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for herfy_email-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: herfy_email-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c6cb2958c8e6b4de3291670c80fe91a2db9a74098ffb7a270905fa16956ef0fd
MD5 4a89d865781264ef94c14d55eca11145
BLAKE2b-256 08aca9e02713d43c0d7154071364b222e5108afcd651f2f921886a86e87a0368

See more details on using hashes here.

Provenance

The following attestation bundles were made for herfy_email-0.1.0-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