---
title: "Email Provider"
description: "Explore our Email Provider setup to connect with your preferred mail server, including Google Mail. Configure with ease! (Gitana 4.0)"
product: "Gitana"
version: "4.0"
url: "/documentation/gitana/4.0/reference/types/emailProvider"
---

# <a id="top"></a>Email Provider

An Object

1.  [Platform](/documentation/gitana/4.0/reference/types/platform.md)
2.  [Application](/documentation/gitana/4.0/reference/types/application.md)
3.  [Email Provider](/documentation/gitana/4.0/reference/types/emailProvider.md)

##### Table of Contents

- [Overview](#top "Overview")
- [Parent](#parent "Parent")
- [Properties](#properties "Properties")
- [Methods](#methods "Methods")
- [Schema](#schema "Schema")

An Email Provider defines the connectivity to a mail server that you would like your application to interact with as it sends and receives emails. A mail server might be a mail server that you run on-premise or it might be a cloud-hosted offering (such as through Google Mail, GoDaddy or Hotmail).

In this document, we'll assume Google Mail as a mail server and offer configuration samples for it. You can tweak these for your own mail server. Or, if you need assistance, simply let us know and we can help you tweak and configure for your environment.

> **Note:** Drop in one of our language drivers to accelerate your development.  
> Here are links to some of our popular [Cookbooks](/documentation/gitana/4.0/developers/cookbooks/overview.md) to help you get started!
> 
> - [C#](/documentation/gitana/4.0/developers/cookbooks/csharp.md)
> - [Go](/documentation/gitana/4.0/developers/cookbooks/go.md)
> - [Java](/documentation/gitana/4.0/developers/cookbooks/java.md)
> - [JavaScript](/documentation/gitana/4.0/developers/cookbooks/javascript2.md)
> - [PHP](/documentation/gitana/4.0/developers/cookbooks/php.md)
> - [Python](/documentation/gitana/4.0/developers/cookbooks/python.md)
> - [Ruby](/documentation/gitana/4.0/developers/cookbooks/ruby.md)

## <a id="parent"></a>Parent

This Email Provider is contained within a [Application](/documentation/gitana/4.0/reference/types/application.md).

## <a id="properties"></a>Properties

The following properties are available:

| Property | Type | Default | Read-Only | Description |
| --- | --- | --- | --- | --- |
| \_doc | string |  | No | The primary ID |
| \_system | object |  | No | Metadata maintained by the system |
| host | string |  | No | The host address of the email server. Example: smtp.gmail.com |
| password | string |  | No | The password to use for authentication (if required). |
| port | number |  | No | The connection port on the email server. Example: 25 |
| smtp\_enabled | boolean |  | No | Whether SMTP is enabled. |
| smtp\_is\_secure | boolean |  | No | Whether to connect to the mail server via secure socket. |
| smtp\_requires\_auth | boolean |  | No | Whether the mail server requires authentication. |
| smtp\_starttls\_enabled | boolean |  | No | Whether START\_TLS is enabled. |
| username | string |  | No | The username to use for authentication (if required). |

## <a id="methods"></a>Methods

The following methods are available:

- [Check Permission](#post-applications-applicationid-emailproviders-emailproviderid-permissions-permissionid-check "Check Permission")
- [Check Single Authority](#post-applications-applicationid-emailproviders-emailproviderid-authorities-authorityid-check "Check Single Authority")
- [Check multiple Authorities](#post-applications-applicationid-emailproviders-authorities-check "Check multiple Authorities")
- [Check multiple Permissions](#post-applications-applicationid-emailproviders-permissions-check "Check multiple Permissions")
- [Create Email Provider](#post-applications-applicationid-emailproviders "Create Email Provider")
- [Delete Email Provider](#delete-applications-applicationid-emailproviders-emailproviderid "Delete Email Provider")
- [Delete Email Provider](#post-applications-applicationid-emailproviders-emailproviderid-delete "Delete Email Provider")
- [Export Email Provider](#post-applications-applicationid-emailproviders-emailproviderid-export "Export Email Provider")
- [Grant Authority](#post-applications-applicationid-emailproviders-emailproviderid-authorities-authorityid-grant "Grant Authority")
- [Import Email Provider](#post-applications-applicationid-emailproviders-emailproviderid-import "Import Email Provider")
- [Lists Email Provider](#get-applications-applicationid-emailproviders "Lists Email Provider")
- [Queries for Email Provider](#post-applications-applicationid-emailproviders-query "Queries for Email Provider")
- [Read ACL](#get-applications-applicationid-emailproviders-emailproviderid-acl-list "Read ACL")
- [Read ACL for Principal](#get-applications-applicationid-emailproviders-emailproviderid-acl "Read ACL for Principal")
- [Read Authorities Report](#post-applications-applicationid-emailproviders-emailproviderid-authorities "Read Authorities Report")
- [Read Email Provider](#get-applications-applicationid-emailproviders-emailproviderid "Read Email Provider")
- [Revoke Authority](#post-applications-applicationid-emailproviders-emailproviderid-authorities-authorityid-revoke "Revoke Authority")
- [Send Emailprovider](#post-applications-applicationid-emailproviders-emailproviderid-send "Send Emailprovider")
- [Test Emailprovider](#put-applications-applicationid-emailproviders-emailproviderid-test "Test Emailprovider")
- [Update Email Provider](#post-applications-applicationid-emailproviders-emailproviderid-update "Update Email Provider")
- [Update Email Provider](#put-applications-applicationid-emailproviders-emailproviderid "Update Email Provider")

### <a id="post-applications-applicationid-emailproviders-emailproviderid-permissions-permissionid-check"></a>Check Permission

Checks whether one or more authorities against the specified emailProvider are granted for a given set of users

POST /applications/{applicationId}/emailproviders/{emailProviderId}/permissions/{permissionId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |
| permissionId | true | string | The ID of the permission |
| id | true | string |  |

#### Response

```json
{
  "$ref": "#/components/schemas/checkPermission"
}
```

### <a id="post-applications-applicationid-emailproviders-emailproviderid-authorities-authorityid-check"></a>Check Single Authority

Checks whether a single authority is granted against the specified emailProvider for the given user

POST /applications/{applicationId}/emailproviders/{emailProviderId}/authorities/{authorityId}/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Check",
  "extends": "status",
  "properties": {
    "check": {
      "type": "boolean"
    },
    "ok": null
  }
}
```

### <a id="post-applications-applicationid-emailproviders-authorities-check"></a>Check multiple Authorities

Checks whether one or more authorities against the specified emailProvider are granted for a given set of users

POST /applications/{applicationId}/emailproviders/authorities/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Check Multiple Authorities Out",
  "properties": {
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "permissionedId": {
            "type": "string"
          },
          "principalId": {
            "type": "string"
          },
          "authorityId": {
            "type": "string"
          },
          "result": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
```

### <a id="post-applications-applicationid-emailproviders-permissions-check"></a>Check multiple Permissions

Checks whether one or more permissions against the specified emailProvider are granted for a given set of users

POST /applications/{applicationId}/emailproviders/permissions/check

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Check Multiple Permissions Out",
  "properties": {
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "permissionedId": {
            "type": "string"
          },
          "principalId": {
            "type": "string"
          },
          "permissionId": {
            "type": "string"
          },
          "result": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
```

### <a id="post-applications-applicationid-emailproviders"></a>Create Email Provider

Creates a new Email Provider

POST /applications/{applicationId}/emailproviders

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="delete-applications-applicationid-emailproviders-emailproviderid"></a>Delete Email Provider

Deletes an existing Email Provider

DELETE /applications/{applicationId}/emailproviders/{emailProviderId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-emailproviders-emailproviderid-delete"></a>Delete Email Provider

Deletes an existing Email Provider

POST /applications/{applicationId}/emailproviders/{emailProviderId}/delete

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-emailproviders-emailproviderid-export"></a>Export Email Provider

Starts an export job for this resource

POST /applications/{applicationId}/emailproviders/{emailProviderId}/export

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |
| groupId | false | string | The Group ID to be assigned to the exported archive |
| artifactId | false | string | The Artifact ID to be assigned to the exported archive |
| versionId | false | string | The Version ID to be assigned to the exported archive |
| vaultId | false | string | The ID of the vault where the exported archive should be saved |
| schedule | false | string | Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous') |

#### Response

```json
{
  "type": "object",
  "description": "Export Configuration",
  "properties": {
    "startDate": {
      "type": "object",
      "description": "Only include objects whose modification date is after this time (epoch millis). This is used for partial or rolling exports."
    },
    "endDate": {
      "type": "object",
      "description": "Only include objects whose modification date is before this time (epoch millis). This is used for partial or rolling exports."
    },
    "startChangeset": {
      "type": "string",
      "description": "Only include data that is relevant to changesets at or beyond the specified changeset."
    },
    "endChangeset": {
      "type": "string",
      "description": "Only include data that is relevant to changesets at or before the specified changeset."
    },
    "includeACLs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include ACLs during export."
    },
    "includeTeams": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Teams during export."
    },
    "includeActivities": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Activities during export."
    },
    "includeBinaries": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Binaries for data stores during export."
    },
    "includeAttachments": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Attachments for Attachables during export."
    },
    "artifactDependencies": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "artifactIncludes": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "forceIncludes": {
      "type": "boolean"
    }
  }
}
```

### <a id="post-applications-applicationid-emailproviders-emailproviderid-authorities-authorityid-grant"></a>Grant Authority

Grants an authority against the specified emailProvider to a given user

POST /applications/{applicationId}/emailproviders/{emailProviderId}/authorities/{authorityId}/grant

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-emailproviders-emailproviderid-import"></a>Import Email Provider

Starts an import job for this resource

POST /applications/{applicationId}/emailproviders/{emailProviderId}/import

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |
| groupId | false | string | The Group ID to be assigned to the exported archive |
| artifactId | false | string | The Artifact ID to be assigned to the exported archive |
| versionId | false | string | The Version ID to be assigned to the exported archive |
| vaultId | false | string | The ID of the vault where the exported archive should be saved |
| schedule | false | string | Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous') |

#### Response

```json
{
  "type": "object",
  "description": "Import Configuration",
  "properties": {
    "includeACLs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include ACLs during import."
    },
    "includeTeams": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Teams during import."
    },
    "includeActivities": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Activities during import."
    },
    "includeBinaries": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Binaries for data stores during import."
    },
    "includeAttachments": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include Attachments for Attachables during import."
    },
    "strategy": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": "CLONE",
      "description": "Either CLONE or COPY_EVERYTHING. Use CLONE to keep the same IDs on import. Use COPY_EVERYTHING to generate all new IDs for all entries on every import."
    },
    "substitutions": {
      "type": "string"
    }
  }
}
```

### <a id="get-applications-applicationid-emailproviders"></a>Lists Email Provider

Retrieves a list of Email Provider instances

GET /applications/{applicationId}/emailproviders

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_emailProvider"
      }
    }
  }
}
```

### <a id="post-applications-applicationid-emailproviders-query"></a>Queries for Email Provider

Queries for instances of type Email Provider

POST /applications/{applicationId}/emailproviders/query

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| sort | false | object | Defines how to sort fields in the result set |
| skip | false | number | Skips the result set cursor ahead the specified number of records |
| limit | false | number | Specifies the number of records to be handed back in the result set |

This method supports pagination.

#### Response

```json
{
  "type": "object",
  "description": "Result Map",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/resultmap_emailProvider"
      }
    }
  }
}
```

### <a id="get-applications-applicationid-emailproviders-emailproviderid-acl-list"></a>Read ACL

Read the Access Control List for the specified emailProvider

GET /applications/{applicationId}/emailproviders/{emailProviderId}/acl/list

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Result Map of ACL entries",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "_doc": {
            "type": "string",
            "title": "Principal ID"
          },
          "name": {
            "type": "string",
            "title": "Principal Name"
          },
          "type": {
            "type": "string",
            "title": "Principal Type"
          },
          "domainId": {
            "type": "string"
          },
          "domainQualifiedId": {
            "type": "string"
          },
          "domainQualifiedName": {
            "type": "string"
          },
          "principalId": {
            "type": "string",
            "title": "Principal ID"
          },
          "userEmail": {
            "type": "string"
          },
          "userFirstName": {
            "type": "string"
          },
          "userLastName": {
            "type": "string"
          },
          "authorities": {
            "type": "array",
            "title": "Authorities",
            "items": {
              "type": "string",
              "title": "Authority Key"
            }
          }
        }
      }
    }
  }
}
```

### <a id="get-applications-applicationid-emailproviders-emailproviderid-acl"></a>Read ACL for Principal

Reads the ACL for an email provider and specific actor

GET /applications/{applicationId}/emailproviders/{emailProviderId}/acl

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Result Map of Authority Keys",
  "properties": {
    "total_rows": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "size": {
      "type": "number"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Authority Key"
      }
    }
  }
}
```

### <a id="post-applications-applicationid-emailproviders-emailproviderid-authorities"></a>Read Authorities Report

Read the Authorities Report for the specified emailProvider

POST /applications/{applicationId}/emailproviders/{emailProviderId}/authorities

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Authority Report",
  "properties": {
    "principalId": {
      "type": "object",
      "properties": {
        "id": {
          "type": "object",
          "properties": {
            "role-key": {
              "type": "string"
            },
            "principal": {
              "type": "string"
            },
            "permissioned": {
              "type": "string"
            },
            "inheritsFrom": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "principal": {
                  "type": "string"
                },
                "permissioned": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
```

### <a id="get-applications-applicationid-emailproviders-emailproviderid"></a>Read Email Provider

Reads an instance of a Email Provider

GET /applications/{applicationId}/emailproviders/{emailProviderId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |

#### Response

```json
{
  "type": "object",
  "extends": "document",
  "container": "application",
  "description": "Email Provider",
  "properties": {
    "host": {
      "type": "string",
      "description": "The host address of the email server. Example: smtp.gmail.com"
    },
    "port": {
      "type": "number",
      "description": "The connection port on the email server. Example: 25"
    },
    "username": {
      "type": "string",
      "description": "The username to use for authentication (if required)."
    },
    "password": {
      "type": "string",
      "description": "The password to use for authentication (if required)."
    },
    "smtp_enabled": {
      "type": "boolean",
      "description": "Whether SMTP is enabled."
    },
    "smtp_requires_auth": {
      "type": "boolean",
      "description": "Whether the mail server requires authentication."
    },
    "smtp_is_secure": {
      "type": "boolean",
      "description": "Whether to connect to the mail server via secure socket."
    },
    "smtp_starttls_enabled": {
      "type": "boolean",
      "description": "Whether START_TLS is enabled."
    },
    "_doc": null,
    "_system": null
  }
}
```

### <a id="post-applications-applicationid-emailproviders-emailproviderid-authorities-authorityid-revoke"></a>Revoke Authority

Revokes an authority against the specified emailProvider from a given user

POST /applications/{applicationId}/emailproviders/{emailProviderId}/authorities/{authorityId}/revoke

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |
| authorityId | true | string | The ID or authority key for the authority |
| id | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="post-applications-applicationid-emailproviders-emailproviderid-send"></a>Send Emailprovider

POST /applications/{applicationId}/emailproviders/{emailProviderId}/send

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |
| email | true | string |  |

### <a id="put-applications-applicationid-emailproviders-emailproviderid-test"></a>Test Emailprovider

PUT /applications/{applicationId}/emailproviders/{emailProviderId}/test

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |
| to | true | string |  |
| from | false | string |  |

### <a id="post-applications-applicationid-emailproviders-emailproviderid-update"></a>Update Email Provider

Updates an existing Email Provider

POST /applications/{applicationId}/emailproviders/{emailProviderId}/update

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

### <a id="put-applications-applicationid-emailproviders-emailproviderid"></a>Update Email Provider

Updates an existing Email Provider

PUT /applications/{applicationId}/emailproviders/{emailProviderId}

#### Parameters

| Name | Required | Type | Description |
| --- | --- | --- | --- |
| applicationId | true | string | The ID of the application |
| emailProviderId | true | string |  |

#### Response

```json
{
  "type": "object",
  "description": "Status of Operation",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Indicates whether the operation succeeded or not"
    }
  }
}
```

## <a id="schema"></a>Schema

```json

{
  "type": "object",
  "extends": "document",
  "container": "application",
  "description": "Email Provider",
  "properties": {
    "host": {
      "type": "string",
      "description": "The host address of the email server. Example: smtp.gmail.com"
    },
    "port": {
      "type": "number",
      "description": "The connection port on the email server. Example: 25"
    },
    "username": {
      "type": "string",
      "description": "The username to use for authentication (if required)."
    },
    "password": {
      "type": "string",
      "description": "The password to use for authentication (if required)."
    },
    "smtp_enabled": {
      "type": "boolean",
      "description": "Whether SMTP is enabled."
    },
    "smtp_requires_auth": {
      "type": "boolean",
      "description": "Whether the mail server requires authentication."
    },
    "smtp_is_secure": {
      "type": "boolean",
      "description": "Whether to connect to the mail server via secure socket."
    },
    "smtp_starttls_enabled": {
      "type": "boolean",
      "description": "Whether START_TLS is enabled."
    },
    "_doc": null,
    "_system": null
  },
  "id": "emailProvider"
}
```
