# Sending transactional email and SMS from your application

Wire up transactional email and SMS through built-in integrations without managing provider credentials.

Published: 2026-06-30
Author: Darwa Product
Category: Product
Tags: email, sms, integrations, notifications

## Communications belong to the application

Password resets, receipts, alerts, and verification codes are part of the user experience. They should deploy with the application and expose the same operational signals as every other production dependency.

Darwa provides environment-scoped credentials for transactional email and SMS integrations. Your application receives only the values required in that environment, while provider credentials remain outside the repository and deployment logs.

## Configure each environment separately

Verify the production sending domain and choose a sender address. Preview environments can use a safe test sender or a delivery sandbox, preventing a pull request from contacting real customers. SMS follows the same boundary: test destinations in previews and approved routes in production.

Use the normal library for your framework. Laravel can keep its mail and notification abstractions; Node, Python, Ruby, and Go applications can use their existing provider clients. Darwa injects the endpoint and scoped credential at runtime.

```text
MAIL_FROM=notifications@example.com
MAIL_TRANSPORT=darwa
SMS_TRANSPORT=darwa
```

## Observe delivery, not only submission

An accepted API request does not guarantee that a message reached its destination. Delivery events, bounces, complaints, and provider failures appear alongside application logs with the environment and release that initiated them.

Queue communications outside the request path so a slow provider never delays the user-facing response. Workers can retry temporary failures with backoff, while permanent failures remain visible for investigation. Rate and spend limits protect each environment from an accidental loop.

This keeps communications easy to add without hiding the parts that matter in production: identity, delivery state, cost, and failure handling.

