Skip to content

Domains

Custom domains allow you to send and receive email from your own domain.

Create a Domain

suspend fun createDomainExample() {
    val client = AgentMailClient()
    val domain = client.createDomain {
        name = "example.com"
    }
    println("Domain ID: ${domain.domainId}")
    println("Verified: ${domain.verified}")
    client.close()
}

List Domains

suspend fun listDomainsExample() {
    val client = AgentMailClient()
    val result = client.listDomains {
        limit = 10
    }
    for (domain in result.domains) {
        println("${domain.name}: verified=${domain.verified}")
    }
    client.close()
}

Get a Domain

suspend fun getDomainExample() {
    val client = AgentMailClient()
    val domain = client.getDomain("domain-id")
    println("Name: ${domain.name}")
    println("Verified: ${domain.verified}")
    client.close()
}

Update a Domain

suspend fun updateDomainExample() {
    val client = AgentMailClient()
    val updated = client.updateDomain("domain-id") {
        name = "newname.com"
    }
    println("Updated: ${updated.name}")
    client.close()
}

Verify a Domain

After creating a domain, you need to add DNS records and verify ownership:

suspend fun verifyDomainExample() {
    val client = AgentMailClient()
    client.verifyDomain("domain-id")
    println("Verification request sent")
    client.close()
}

Get Zone File

Retrieve the DNS zone file for a domain:

suspend fun zoneFileExample() {
    val client = AgentMailClient()
    val zoneFile = client.getDomainZoneFile("domain-id")
    println(zoneFile)
    client.close()
}

Delete a Domain

suspend fun deleteDomainExample() {
    val client = AgentMailClient()
    client.deleteDomain("domain-id")
    println("Domain deleted")
    client.close()
}

Next Steps