ドキュメント本文へスキップ
Go

client.Addresses

この名前空間のすべてのメソッドの、シグネチャ、パラメーター、戻り値、例。

メソッド

Which addresses and domains the key may send from.

Addresses.List

List the addresses and domains this key may send as

スコープemails:send結果をページ単位で取得
シグネチャ
List(ctx context.Context, opts ...openemail.RequestOption) (*openemail.AddressBookPage, error)

Answers the question behind an unexplained 403 from_address_forbidden: which addresses this key may put in from. It returns one page of the addresses created on the workspace's domains, alphabetically, each with a canSend verdict for this key, plus the domains themselves. ListAll collects every page into one book and Iterate walks the addresses lazily.

unrestricted is true when the key is narrowed by nothing, in which case the API accepts any local-part on the workspace's domains, including ones nobody has created. A key can be narrowed by whole domains, by individual addresses, or by both, and any of those makes unrestricted false. canSend is then true only for an enabled address the key covers, either because its domain is one of the whole domains the key holds or because the address itself is on its address list. A disabled address always reports canSend false.

The SDK reshapes the wire envelope: the server's data array arrives as Addresses, so the result is one value rather than a list.

パラメーター

openemail.WithLimitint

Page size, from 1 to 100. The server defaults to 25.

openemail.WithCursorstring

The NextCursor of the previous page. Leave it out for the first page.

openemail.WithAPIKeystring

Reports on this key instead of the one the client was built with.

戻り値

An *openemail.AddressBookPage with Unrestricted, HasMore, NextCursor, Addresses (each with address, enabled and canSend) and Domains (each with domain, receivingVerified, sendingVerified and catchAll).

例

page, err := client.Addresses.List(ctx, openemail.WithLimit(100))if err != nil {	return err} for _, item := range page.Addresses {	fmt.Println(item.Bool("canSend"), item.String("address"))} fmt.Println(page.Unrestricted, len(page.Domains), page.HasMore)

注意事項

  • It needs emails:send, not a read scope, because it describes what a send would accept.

  • An app a member connected always reports unrestricted: false, because its access token is held to what that member reaches: the addresses and domains they were granted, or every domain of the workspace when their role holds addresses:all. That is worked out again on every call, so a domain added later appears on the next one.

  • canSend is false when the address is disabled, when the key's allowlists leave it out, or when the domain cannot sign yet. sendingVerified on each domain is that last fact on its own, so a domain that is verified for receiving and not yet for sending shows receivingVerified: true, sendingVerified: false.

  • Only created addresses appear in addresses. An allowlisted address with no mailbox behind it can still be sent from without ever showing up here, and a key that holds a whole domain can send as any local-part on it, including ones created after the key was.

  • The cursor is opaque and holds where the last row sat in this order, so a row deleted or edited between pages never breaks the walk: the next page starts at the first row that sorts after it. A cursor this list did not hand out is a 400 invalid_cursor.

ほかの提供先

API
GET /addresses
TypeScript
addresses.list()
Python
addresses.list()
Ruby
addresses.list
PHP
addresses->list
Java
addresses().list
C#
Addresses.ListAsync
CLI
openemail addresses list

Addresses.ListAll

Collect every address this key may see into one book

スコープemails:send結果をページ単位で取得
シグネチャ
ListAll(ctx context.Context, opts ...openemail.RequestOption) (*openemail.AddressBook, error)

Walks every page of List and returns one *openemail.AddressBook holding all addresses, alphabetically, with Unrestricted and Domains as the last page reported them. One request per page.

パラメーター

openemail.WithLimitint

Page size for each request, from 1 to 100. The server defaults to 25.

openemail.WithCursorstring

Starts the walk after this cursor instead of the first page.

openemail.WithAPIKeystring

Reports on this key instead of the one the client was built with.

戻り値

An *openemail.AddressBook with Unrestricted, every address in Addresses, and Domains.

例

book, err := client.Addresses.ListAll(ctx)if err != nil {	return err} for _, item := range book.Addresses {	fmt.Println(item.Bool("canSend"))} fmt.Println(book.Unrestricted, len(book.Domains))

注意事項

  • If any page fails the call fails and the addresses already fetched are discarded.

ほかの提供先

API
GET /addresses
TypeScript
addresses.listAll()
Python
addresses.list_all()
Ruby
addresses.list_all
PHP
addresses->listAll
Java
addresses().listAll
C#
Addresses.ListAllAsync

Addresses.Iterate

Stream the addresses one at a time

スコープemails:send結果をページ単位で取得
シグネチャ
Iterate(ctx context.Context, opts ...openemail.RequestOption) *openemail.Iterator

Returns an iterator that yields addresses individually, alphabetically, each with its canSend verdict for this key, and requests the next page only once the current one is drained. It yields addresses only; read List for unrestricted and domains.

パラメーター

openemail.WithLimitint

Page size for each request, from 1 to 100. The server defaults to 25.

openemail.WithCursorstring

Starts the walk after this cursor instead of the first page.

openemail.WithAPIKeystring

Reports on this key instead of the one the client was built with.

戻り値

An *openemail.Iterator yielding one address per step.

例

for address, err := range client.Addresses.Iterate(ctx).All() {	if err != nil {		return err	} 	fmt.Println(address.Bool("canSend"), address.String("address"))}

注意事項

  • The iterator is lazy, so an abandoned loop costs only the pages you consumed.

ほかの提供先

API
GET /addresses
TypeScript
addresses.iterate()
Python
addresses.iterate()
Ruby
addresses.iterate
PHP
addresses->iterate
Java
addresses().iterate
C#
Addresses.IterateAsync