---
title: Read MAIL FROM Domain
description: This example uses GET {{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain to get the details for the MAIL FROM domain that you defined for the specified trusted email domain.
component: pingone-api
page_id: pingone-api:platform:notifications/trusted-email-domains/read-mail-from-domain
canonical_url: https://developer.pingidentity.com/pingone-api/platform/notifications/trusted-email-domains/read-mail-from-domain.html
section_ids:
  headers: Headers
  example-request: Example Request
  example-response: Example Response
---

# Read MAIL FROM Domain

##

```none
GET {{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain
```

This example uses `GET {{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain` to get the details for the MAIL FROM domain that you defined for the specified trusted email domain.

You must send this GET request after creating a custom MAIL FROM domain in order to retrieve the MX record that you have to add to your DNS records in order to use the feature. The SPF record is also modified so you must also send a GET request with the `{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/spf` endpoint to obtain the updated SPF record to put in your DNS.

Refer to the [MAIL FROM domain data model](../trusted-email-domains.html#mail-from-domain-data-model) for property descriptions.

### Headers

Authorization      Bearer {{accessToken}}

##

### Example Request

* cURL

* C#

* Go

* HTTP

* Java

* jQuery

* NodeJS

* Python

* PHP

* Ruby

* Swift

```shell
curl --location --globoff '{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain' \
--header 'Authorization: Bearer {{accessToken}}'
```

```csharp
var options = new RestClientOptions("{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer {{accessToken}}");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
```

```golang
package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
```

```http
GET /v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain HTTP/1.1
Host: {{apiPath}}
Authorization: Bearer {{accessToken}}
```

```java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain")
  .method("GET", body)
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
```

```javascript
var settings = {
  "url": "{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer {{accessToken}}"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

```javascript
var request = require('request');
var options = {
  'method': 'GET',
  'url': '{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain',
  'headers': {
    'Authorization': 'Bearer {{accessToken}}'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
```

```python
import requests

url = "{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain"

payload = {}
headers = {
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
```

```php
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'Bearer {{accessToken}}'
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
```

```ruby
require "uri"
require "net/http"

url = URI("{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer {{accessToken}}"

response = http.request(request)
puts response.read_body
```

```swift
var request = URLRequest(url: URL(string: "{{apiPath}}/v1/environments/{{envID}}/emailDomains/{{emailDomainID}}/mailFromDomain")!,timeoutInterval: Double.infinity)
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()
```

### Example Response

200 OK

```json
{
    "_links": {
        "self": {
            "href": "https://api.pingone.eu/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/emailDomains/4357ee3b-8e2e-4b67-8596-d4481e689024/mailFromDomain"
        },
        "environment": {
            "href": "https://api.pingone.eu/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
        },
        "emailDomain": {
            "href": "https://api.pingone.eu/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/emailDomains/4357ee3b-8e2e-4b67-8596-d4481e689024"
        }
    },
    "type": "MX",
    "status": "VERIFICATION_REQUIRED",
    "key": "p1notificationsnew",
    "value": "feedback-smtp.eu-west-1.amazonses.com",
    "mailFrom": {
        "domain": "{{mailFromSubdomain}}"
    },
    "priority": 10
}
```
