Atlas L6ynztjd84
Help CenterLearnSMTPOverview

Overview

Last updated March 5, 2025

Send with SMTP

Send Loops emails over SMTP.

Our SMTP service is still under development but is intended to be stable as currently deployed. Please contact [adam@loops.so](mailto:adam@loops.so) with any feedback during this period.

You can send transactional emails over SMTP, meaning you can use Loops to power emails in platforms like Supabase and development tools and frameworks like Laravel, Rails, Django and Nodemailer.

How it works

The Loops way of sending emails over SMTP is a bit different from other services.

First, you create transactional email templates in [the Loops editor](/creating-emails/editor) for the emails you want to send.

Our rich editor helps you create beautiful, client-compatible *and* easy-to-update emails rather than hand-coding them.

Use these SMTP settings in your application:

| Field       | Value                                                                                      |
| ----------- | ------------------------------------------------------------------------------------------ |
| Host        | `smtp.loops.so`                                                                            |
| Port number | `587`                                                                                      |
| Username    | `loops`                                                                                    |
| Password    | An API key copied from your [API settings](http://app.loops.so/settings?page=api) in Loops |

Then, when it comes to sending emails, instead of the content of an email, you send an API-like request body like this:

```json
{
  "transactionalId": "clomzp89u035xl50px7wrl0ri",
  "email": "dan@loops.so",
  "dataVariables": {
    "confirmationUrl": "https://myapp.com/confirm/12345/"
  }
}
```

This content **needs to be converted to a string** and then sent as the email body.

Loops takes the provided data and compiles an email using the template you specify in the `transactionalId` value plus the provided `dataVariables`, then sends the email to `email`.

Every email sent using Loops' SMTP service requires a transactional email to be set up in your Loops account. Note the `transactionalId` value in the email payload.

SMTP Integrations

Learn how to set up SMTP in platforms and developer tools.

Integrations

<Card title="Novu" icon={  } href="/integrations/novu"

Send Novu notification emails with Loops.

<Card title="Supabase" icon={  } href="/integrations/supabase"

Send Supabase authentication emails with Loops.

Frameworks

Send transactional emails from your Laravel project.

<Card title="Ruby on Rails" icon={} href="/smtp/rails"> Send transactional emails from your Rails project.

Was this article helpful?