---
title: Using a custom email provider for notifications
description: To configure PingOne to use an external email service for sending notifications to your users:
component: pingone
page_id: pingone:settings:p1_using_custom_email_provider_for_notifications
canonical_url: https://docs.pingidentity.com/pingone/settings/p1_using_custom_email_provider_for_notifications.html
revdate: May 7, 2026
---

# Using a custom email provider for notifications

To configure PingOne to use an external email service for sending notifications to your users:

1. Go to **Settings > Senders**.

2. Click **+**, enter the following options, and then click **Next**:

   1. In the **Sender Type** list, select **Email**.

   2. In the **Provider Type** list, select **Custom Provider**

3. For **Provider Name**, enter any name to identify the provider.

4. For **Authorization**:

   * To use basic authentication with the email provider, select **Basic** and enter the username and password.

   * To use bearer token authorization, select **Bearer** and enter the token to use.

   * To use OAuth2 authorization, select **OAuth2 - Client Credentials** and enter the URL of the authorization server that provides the access token, the client's public identifier, and the client's secret.

   * To use custom header authorization, select **Custom Header** and enter the header name and the value to use for the header.

5. (Optional) Click **[icon: plus, set=fa]Add Scope** to configure an OAuth 2.0 scope.

6. (Optional) Enter the **From Name** and **From Address** values you want to use in the notifications.

7. (Optional) Enter the **Reply-To Name** and **Reply-To Address** values you want to use in the notifications.

8. Provide the information required by your email provider's API:

   1. In the **Type** list, select **GET** or **POST** to specify the type of API request that should be sent.

   2. In the **URL** field, enter the endpoint for your email provider, for example, `https://api.example.com/email`.

   3. If the type is set to **POST**, define the body of the request by selecting one of the options in the **Body** list: **None**, **Form**, or **Raw**.

      * If you select **Form**, use **Key** and **Value** to enter field names and values.

      * If you select **Raw**, use the **Raw** field to enter the information that will be used for the body of the request. The body that you define must include the PingOne variables listed in **Required Variables**: `${from}`, `${to}`, and `${message}`.

      In both **Raw** and **Form** view, when you add one of the required variables to the body, it's highlighted in green in the list. When mapping to fields from the provider's API, you can also use the variables listed in **Optional Variables**.

      To prevent problems related to special character encoding when passing PingOne variables to the provider, it's recommended that you specify the type of input your provider expects when you include a PingOne variable. Use the syntax `${variable_name|format_used}`, for example, `${message|json}`.

      The formats you can specify are:

      * json

      * html

      * url

      * base64

   4. If the type is set to **GET**, append the query parameters that the email provider's API requires to the URL. The URL must also include the required PingOne variables.

   5. Click **Add Header** to add whatever headers the email provider's API requires.

   6. After entering all of the information, click **Send Test Email** to send an email to verify that everything is working correctly.

      |   |                                                                                                                                                                                                                                                                      |
      | - | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
      |   | When you edit existing settings for the email service, the password is not displayed when the page is loaded. To send a test email, you must re-enter the password. Because **Password** is a mandatory field, **Save** is disabled until you re-enter the password. |

9. Click **Save**.

   |   |                                                                                                                                                |
   | - | ---------------------------------------------------------------------------------------------------------------------------------------------- |
   |   | **Save** is disabled until you have filled in all the required fields and have included all the required variables in the body of the request. |

10. If you have more than one sender defined, select the three dots next to the Sender new entry and select **Make Active**.

    You can define multiple senders, but you can only have one active sender at any given time.

|   |                                                                                                                                                                                                                                                                                      |
| - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|   | When using a custom provider, if there are repeated errors within a short period or long delays before responses from the provider, PingOne assumes there's some underlying issue and activates a circuit breaker, suspending notification attempts using that provider temporarily. |
