Quickstart: How to connect a verified email domain

In this quick start, you learn how to connect a verified domain in Azure Communication Services to send email.

Prerequisites

Connect an email domain to a Communication Service Resource

  1. In the Azure Communication Service Resource overview page, click Domains on the left navigation panel under Email.

    Screenshot that shows the left navigation panel for linking Email Domains.

  2. Select one of the options below

    • Click Connect domain in the upper navigation bar.

    • Click Connect domain in the splash screen.

      Screenshot that shows how to connect one of your verified email domains.

  3. Select a one of the verified domains by filtering

    • Subscription
    • Resource Group
    • Email Service
    • Verified Domain

    Screenshot that shows how to filter and select one of the verified email domains to connect.

Note

We allow only connecting the domains in the same geography. Please ensure that Data location for Communication Resource and Email Communication Resource that was selected during resource creation are the same.

  1. Click Connect

    Screenshot that shows one of the verified email domains is now connected.

Disconnect an email domain from the Communication Service Resource

  1. In the Azure Communication Service Resource overview page, click Domains on the left navigation panel under Email.

  2. Select the Connected Domains click the ... and click Disconnect.

    Screenshot that shows how to disconnect the connected domain.

Prerequisites

Connect an email domain to a Communication Service Resource

Replace the {subscription-id}, {resource-group-name}, {communication-services-resource-name}, and {linked-domain-resource-id} in the sample request.

The linked domain resource ID should be in the following format.

/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Communication/emailServices/{email-service-name}/domains/{domain-name}

If you are using an Azure Managed Domain, the domain-name is "AzureManagedDomain". The email-service-name should be the same email service that you used to provision the domain.

Once these values are populated make a PATCH request to the using the following Request URL and Body.

https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Communication/CommunicationServices/{communication-services-resource-name}?api-version=2023-03-31
{
    "properties": {
        "linkedDomains": ["{linked-domain-resource-id}"]
    }
}

Disconnect an email domain from the Communication Service Resource

Replace the {subscription-id}, {resource-group-name}, and {communication-services-resource-name} in the sample request.

Once these values are populated, make a PATCH request to the using the following Request URL and Body.

https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Communication/CommunicationServices/{communication-services-resource-name}?api-version=2023-03-31
{
    "properties": {
        "linkedDomains": []
    }
}

Prerequisites

Install the required packages

dotnet add package Azure.ResourceManager.Communication

Initialize the management client

Set the environment variable AZURE_SUBSCRIPTION_ID with the subscription ID of the subscription your Domain and Email resources are in. Run the code sample to initialize the management client.

using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Compute;
using Azure.ResourceManager.Resources;

ArmClient client = new ArmClient(new DefaultAzureCredential());

Connect an email domain to a Communication Service Resource

Replace the <subscription-id>, <resource-group-name>, <azure-communication-services-resource-name>, and <linked-domain-resource-id> in the sample code.

The linked domain resource ID should be in the following format.

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Communication/emailServices/<email-service-name>/domains/<domain-name>

If you are using an Azure Managed Domain, the domain-name is "AzureManagedDomain". The email-service-name should be the same email service that you used to provision the domain.

Once these values are populated, run the sample code.

ResourceIdentifier communicationServiceResourceId = CommunicationServiceResource.CreateResourceIdentifier("<subscription-id>", "<resource-group-name>", "<azure-communication-services-resource-name>");
CommunicationServiceResource communicationServiceResource = client.GetCommunicationServiceResource(communicationServiceResourceId);

CommunicationServiceResourcePatch patch = new CommunicationServiceResourcePatch()
{
    LinkedDomains =
    {
        "<linked-domain-resource-id>",
    },
};
CommunicationServiceResource result = await communicationServiceResource.UpdateAsync(patch);

Disconnect an email domain from the Communication Service Resource

Replace the <subscription-id>, <resource-group-name>, and <azure-communication-services-resource-name> in the sample code.

Once these values are populated run the sample code.

ResourceIdentifier communicationServiceResourceId = CommunicationServiceResource.CreateResourceIdentifier("<subscription-id>", "<resource-group-name>", "<azure-communication-services-resource-name>");
CommunicationServiceResource communicationServiceResource = client.GetCommunicationServiceResource(communicationServiceResourceId);

CommunicationServiceResourcePatch patch = new CommunicationServiceResourcePatch();
CommunicationServiceResource result = await communicationServiceResource.UpdateAsync(patch);

Prerequisites

Install the required packages

npm install @azure/arm-communication
npm install @azure/identity

Initialize the management client

Replace the field in the sample code with the subscription ID of the subscription your Domain and Email resources are in. Run the code sample to initialize the management client.

const { CommunicationServiceManagementClient } = require("@azure/arm-communication");
const { DefaultAzureCredential } = require("@azure/identity");

const credential = new DefaultAzureCredential();
const subscriptionId = "<your-subscription-id>";

client = new CommunicationServiceManagementClient(credential, subscriptionId);

Connect an email domain to a Communication Service Resource

Replace the <resource-group-name>, <azure-communication-services-resource-name>, and <linked-domain-resource-id> in the sample code.

The linked domain resource ID should be in the following format.

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Communication/emailServices/<email-service-name>/domains/<domain-name>

If you are using an Azure Managed Domain, the domain-name is "AzureManagedDomain". The email-service-name should be the same email service that you used to provision the domain.

Once these values are populated, run the sample code.

const parameters = {
    dataLocation: "United States",
    location: "Global",
    linkedDomains: [
        "<linked-domain-resource-id>"
    ]
};

const result = await client.communicationServices.beginCreateOrUpdateAndWait(
    "<resource-group-name>",
    "<azure-communication-services-resource-name>",
    parameters
);

Disconnect an email domain from the Communication Service Resource

Replace the <resource-group-name>, and <azure-communication-services-resource-name> in the sample code.

Once these values are populated run the sample code.

const parameters = {
    dataLocation: "United States",
    location: "Global"
};

const result = await client.communicationServices.beginCreateOrUpdateAndWait(
    "<resource-group-name>",
    "<azure-communication-services-resource-name>",
    parameters
);

Prerequisites

Install the required packages

Add the following dependency to your pom.xml.

<dependency>
    <groupId>com.azure.resourcemanager</groupId>
    <artifactId>azure-resourcemanager-communication</artifactId>
    <version>2.0.0</version>
</dependency>

Initialize the management client

Set the environment variable AZURE_SUBSCRIPTION_ID with the subscription ID of the subscription your Domain and Email resources are in. Run the code sample to initialize the management client.

AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
    .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
    .build();
CommunicationManager manager = CommunicationManager
    .authenticate(credential, profile);

Connect an email domain to a Communication Service Resource

Replace the <resource-group-name>, <azure-communication-services-resource-name>, and <linked-domain-resource-id> in the sample code.

The linked domain resource ID should be in the following format.

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Communication/emailServices/<email-service-name>/domains/<domain-name>

If you are using an Azure Managed Domain, the domain-name is "AzureManagedDomain". The email-service-name should be the same email service that you used to provision the domain.

Once these values are populated, run the sample code.

List<String> linkedDomains = new ArrayList<>();
linkedDomains.add("<linked-domain-resource-id>") 

manager
    .communicationServices()
    .define("<azure-communication-services-resource-name>")
    .withRegion("Global")
    .withExistingResourceGroup("<resource-group-name>")
    .withDataLocation("United States")
    .withLinkedDomains(linkedDomains)
    .create();

Disconnect an email domain from the Communication Service Resource

Replace the <resource-group-name>, and <azure-communication-services-resource-name> in the sample code.

Once these values are populated run the sample code.

manager
    .communicationServices()
    .define("<azure-communication-services-resource-name>")
    .withRegion("Global")
    .withExistingResourceGroup("<resource-group-name>")
    .withDataLocation("United States")
    .create();

Prerequisites

Install the required packages

pip install azure-mgmt-communication
pip install azure-identity

Initialize the management client

Replace the field in the sample code with the subscription ID of the subscription your Domain and Email resources are in. Run the code sample to initialize the management client.

from azure.mgmt.communication import CommunicationServiceManagementClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
subscription_id = "<your-subscription-id>"

client = CommunicationServiceManagementClient(credential, subscription_id)

Connect an email domain to a Communication Service Resource

Replace the <resource-group-name>, <azure-communication-services-resource-name>, and <linked-domain-resource-id> in the sample code.

The linked domain resource ID should be in the following format.

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Communication/emailServices/<email-service-name>/domains/<domain-name>

If you are using an Azure Managed Domain, the domain-name is "AzureManagedDomain". The email-service-name should be the same email service that you used to provision the domain.

Once these values are populated, run the sample code.


response = client.communication_services.begin_create_or_update(
    resource_group_name="<resource-group-name>",
    communication_service_name="<azure-communication-services-resource-name>",
    parameters={
        "location": "Global",
        "properties": {
            "dataLocation": "United States",
            "linkedDomains": [
                "<linked-domain-resource-id>"
            ],
        }
    },
).result()

Disconnect an email domain from the Communication Service Resource

Replace the <resource-group-name> and <azure-communication-services-resource-name> in the sample code.

Once these values are populated run the sample code.


response = client.communication_services.begin_create_or_update(
    resource_group_name="<resource-group-name>",
    communication_service_name="<azure-communication-services-resource-name>",
    parameters={
        "location": "Global",
        "properties": {
            "dataLocation": "United States"
        }
    },
).result()

Next steps