Inboxes
Inboxes are email addresses managed by AgentMail. Each inbox can send and receive messages, manage threads, and store drafts.
Create an Inbox
suspend fun createInboxExample() {
val client = AgentMailClient()
val inbox = client.createInbox("support", "example.com", "Support Team")
println("Created: ${inbox.inboxId} (${inbox.email})")
client.close()
}
List Inboxes
suspend fun listInboxesExample() {
val client = AgentMailClient()
val result = client.listInboxes {
limit = 10
ascending = true
}
for (inbox in result.inboxes) {
println("${inbox.inboxId}: ${inbox.email}")
}
client.close()
}
Get an Inbox
suspend fun getInboxExample() {
val client = AgentMailClient()
val inbox = client.getInbox("inbox-id")
println("Display name: ${inbox.displayName}")
println("Email: ${inbox.email}")
client.close()
}
Update an Inbox
suspend fun updateInboxExample() {
val client = AgentMailClient()
val updated = client.updateInbox("inbox-id") {
displayName = "New Display Name"
}
println("Updated: ${updated.displayName}")
client.close()
}
Delete an Inbox
suspend fun deleteInboxExample() {
val client = AgentMailClient()
client.deleteInbox("inbox-id")
println("Inbox deleted")
client.close()
}
Pagination
All list operations support pagination with pageToken:
suspend fun paginateInboxesExample() {
val client = AgentMailClient()
var pageToken: String? = null
do {
val finalToken = pageToken
val result = client.listInboxes {
limit = 25
finalToken?.let { this.pageToken = it }
}
for (inbox in result.inboxes) {
println(inbox.email)
}
pageToken = result.nextPageToken
} while (pageToken != null)
client.close()
}
The same pagination pattern works for all list operations in the SDK (messages, threads, drafts, etc.).