> For the complete documentation index, see [llms.txt](https://codemash.gitbook.io/codemash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codemash.gitbook.io/codemash/cloud/emails/integrations/providers.md).

# Providers

The Email providers you can connect — AWS SES, Twilio SendGrid, Mailgun, SMTP and the Fake test provider.

**Where:** Email → Integrations → **Add New Integration** · `/projects/<project>/emails/integrations/pick`

The page **Select "Emails" Integration** lists the five providers you can connect. Each card names the provider, says what it is, and has **Connect** (opens the form, `…/integrations/new/<provider>`), **View documentation** and **See examples** (open the provider's docs page).

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-d223730d2de1f487d07b880d105ac2f559704bab%2Fproviders-list-1.png?alt=media" alt="Select Emails Integration: cards AWS SES and Twilio SendGrid with Connect, View documentation and See examples"><figcaption><p>The provider picker.</p></figcaption></figure>

## Columns, search and filters

| Provider                                                                            | Card says                                   | Good for                         | What you need from the provider                                         | Opens / clicks / bounces back in Norbix |
| ----------------------------------------------------------------------------------- | ------------------------------------------- | -------------------------------- | ----------------------------------------------------------------------- | --------------------------------------- |
| [AWS SES](/codemash/cloud/emails/integrations/providers/aws-ses.md)                 | AWS SES (Amazon Simple Email Service) · AWS | High volume on AWS               | A verified identity, a region, an IAM user or a cross-account role      | No                                      |
| [Twilio SendGrid](/codemash/cloud/emails/integrations/providers/sendgrid.md)        | Twilio SendGrid · Twilio                    | A hosted API, quick start        | An API key with Mail Send access and a verified sender                  | No                                      |
| [Mailgun](/codemash/cloud/emails/integrations/providers/mailgun.md)                 | Mailgun · Mailgun                           | Delivery events back in Norbix   | A verified sending domain, the private API key, the webhook signing key | Yes, with the webhook                   |
| [SMTP](/codemash/cloud/emails/integrations/providers/smtp.md)                       | SMTP · Your Email Service Provider          | Any mail server you already have | Host, port, user name and password                                      | No                                      |
| [Fake Email (Test Me)](/codemash/cloud/emails/integrations/providers/fake-email.md) | Fake Email (Test Me) · Norbix               | Building and testing             | Nothing — it is created with the module                                 | — (nothing is sent)                     |

The picker has no search. One project can have many integrations — for example SES for transactional and Mailgun for marketing; each campaign and trigger action names one. At most one Fake integration per project.

## What you can do here

* [Connect AWS SES](/codemash/cloud/emails/integrations/providers/aws-ses.md)
* [Connect Twilio SendGrid](/codemash/cloud/emails/integrations/providers/sendgrid.md)
* [Connect Mailgun](/codemash/cloud/emails/integrations/providers/mailgun.md)
* [Connect an SMTP server](/codemash/cloud/emails/integrations/providers/smtp.md)
* [Use the Fake provider](/codemash/cloud/emails/integrations/providers/fake-email.md)
* Then [test it](/codemash/cloud/emails/integrations/test.md) and [set it as default](/codemash/cloud/emails/integrations/set-default.md).

## Do it from code

Every provider is saved with the same call; the `provider` field picks the fields (see each provider page):

```ts
const { id } = await norbix.hub.notifications.saveEmailIntegration({
  integration: {
    provider: 'Smtp',
    integrationName: 'Office mail server',
    isEnabled: true,
    emailAddress: 'no-reply@acme.example',
    emailSenderName: 'Acme',
    domain: 'smtp.dsem.norbix.test', // your SMTP host
    port: 2525,
    userName: 'acme-mailer',
    password: process.env.SMTP_PASSWORD ?? 'local-catcher',
  },
});
```

```sh
norbix hub notifications email integration get --id int_5oBLNBjIKaqN7YpDuHdwOv
```

API: [Save Email Integration](/codemash/api-reference/notifications/email/save-email-integration.md)
