Skip to the documentation
CLI

openemail connected-mailboxes

Every command in this namespace, with its arguments, flags and examples.

Commands

Mailboxes that stay at Gmail, Yahoo, iCloud or another provider and are worked from OpenEmail: find their mail servers, connect one with an app password, see whether it syncs, pause, resume or rename it, give it a new password, sync it now and disconnect it. New mail is copied in, what is done to it here goes back to the provider, and mail written as its address is sent through the provider.

Every command here also takes the global flags, such as --json, --profile and --dry-run. See the global flags

openemail connected-mailboxes list

List the connected mailboxes

Scopesthreads:readNeeds a sign-inAliasesls

Usage

openemail connected-mailboxes list [flags]

Resolves every mailbox connected to the workspace in one array, newest first. The list comes whole and is never paged. A connected mailbox stays at its provider, such as Gmail or Yahoo, and is worked from OpenEmail: its new mail is copied in, what is done to it here goes back to the provider, and mail written as its address is sent through the provider.

status is active while it syncs and sends, paused while a person stopped it, needs-sign-in when the provider stopped accepting its password, and failing when the last five syncs failed and it keeps trying less often.

Examples

openemail connected-mailboxes list
Print the raw JSON
openemail connected-mailboxes list --json

Also available in

API
GET /connected-mailboxes
TypeScript
connectedMailboxes.list()
Python
connected_mailboxes.list()
Ruby
connected_mailboxes.list
PHP
connectedMailboxes->list
Go
ConnectedMailboxes.List
Java
connectedMailboxes().list
C#
ConnectedMailboxes.ListAsync

openemail connected-mailboxes get

Read one connected mailbox by id

Scopesthreads:readNeeds a sign-inAliasesshowview

Usage

openemail connected-mailboxes get <id> [flags]

Looks up one connected mailbox and returns it in the same shape as a row of list: whether it is syncing, when it last finished, and what went wrong if it did not.

Arguments

<id>Required

Connected mailbox id such as cmb_5c1e9a7b3d2f48e6a0b4c7d1, as list returns it.

Examples

openemail connected-mailboxes get cmb_5c1e9a7b3d2f48e6a0b4c7d1
Print the raw JSON
openemail connected-mailboxes get cmb_5c1e9a7b3d2f48e6a0b4c7d1 --json

Also available in

API
GET /connected-mailboxes/{id}
TypeScript
connectedMailboxes.get()
Python
connected_mailboxes.get()
Ruby
connected_mailboxes.get
PHP
connectedMailboxes->get
Go
ConnectedMailboxes.Get
Java
connectedMailboxes().get
C#
ConnectedMailboxes.GetAsync

openemail connected-mailboxes discover

Find the mail servers for a mailbox

Scopesdomains:writeNeeds a sign-in

Usage

openemail connected-mailboxes discover <email> [flags]

Looks up where the mailbox behind an address lives and what it signs in with, so the right password can be asked for before connect. Nothing is stored and no sign-in is attempted.

signIn is app-password for Gmail, Yahoo, iCloud and the other providers that want one, password where the everyday password works, and microsoft for Outlook.com and Microsoft 365, which only the Microsoft sign-in in the app can connect. imap is null when nothing was found: pass host to connect. smtp is null when the outgoing server is found while connecting, or can be passed as smtpHost.

Arguments

<email>Required

The address of the mailbox.

Examples

openemail connected-mailboxes discover [email protected]
Print the raw JSON
openemail connected-mailboxes discover [email protected] --json

Also available in

API
GET /connected-mailboxes/settings
TypeScript
connectedMailboxes.discover()
Python
connected_mailboxes.discover()
Ruby
connected_mailboxes.discover
PHP
connectedMailboxes->discover
Go
ConnectedMailboxes.Discover
Java
connectedMailboxes().discover
C#
ConnectedMailboxes.DiscoverAsync

openemail connected-mailboxes connect

Connect a mailbox at another provider

Scopesdomains:writeNeeds a sign-in

Usage

openemail connected-mailboxes connect --email <value> --password <value> [flags]
openemail connected-mailboxes connect --data <json|@file|-> [flags]

Connects a mailbox that stays at Gmail, Yahoo, iCloud or another provider, so its address becomes an address of the workspace while its mail stays where it is. It signs in to the incoming and the outgoing server with the password, keeps the password sealed, adds the address and starts copying new mail in within a minute.

From then on read, starred, archived, spam and deleted go back to the provider, and mail written as the address goes out through the provider, so it lands in its Sent folder too. With importHistory: true it also starts an import of the mail already in the mailbox, which imports.get follows by historyImportId.

Most providers want an app password, made in the account's security settings, not the everyday password. Leave host and --smtp-host out to have the servers found from the address, as discover shows.

Flags

--email <value>

The address of the mailbox, such as [email protected]. Required, here or in --data.

--password <value>

The app password of the mailbox, or its password where the provider has no app passwords. Pass - to read it from standard input, or @path to read it from a file, so it stays out of your shell history. Required, here or in --data.

--host <value>

The IMAP server. Left out, it is looked up from the address.

--port <n>

The IMAP port: 993 with TLS, or 143 with STARTTLS.

--security <value>

How the IMAP connection is encrypted: tls or starttls.

--username <value>

The name to sign in with, when it is not the address.

--smtp-host <value>

The SMTP server mail is sent through. Left out, it is found.

--smtp-port <n>

The SMTP port: 465 with TLS, or 587 with STARTTLS.

--smtp-security <value>

How the SMTP connection is encrypted: tls or starttls.

--label <value>

A name for the address, shown beside it in the app, up to 120 characters.

--import-history

Whether to copy the mail already in the mailbox as well. Left out, only mail that arrives from now on comes in.

--data <json|@file|->

The whole body as JSON, inline, from a file with @path, or - for standard input. Flags override its keys.

Examples

The required values only
openemail connected-mailboxes connect --email [email protected] --password @password.txt
With optional flags
openemail connected-mailboxes connect --email [email protected] --password @password.txt --label 'Ada (Gmail)' --import-history
Read the whole body from a JSON file
openemail connected-mailboxes connect --data @connected-mailbox.json

Also available in

API
POST /connected-mailboxes
TypeScript
connectedMailboxes.connect()
Python
connected_mailboxes.connect()
Ruby
connected_mailboxes.connect
PHP
connectedMailboxes->connect
Go
ConnectedMailboxes.Connect
Java
connectedMailboxes().connect
C#
ConnectedMailboxes.ConnectAsync

openemail connected-mailboxes update

Pause, resume or rename a connected mailbox, or give it a new password

Scopesdomains:writeNeeds a sign-inAliasesedit

Usage

openemail connected-mailboxes update <id> [flags]

Changes a connected mailbox and resolves with it as it is now. Send only what changes: a field left out stays as it is.

paused: true stops syncing and sending through the mailbox, and paused: false starts both again. The mail already copied in stays either way. password gives it a new app password after the provider stopped accepting the old one: it is checked against both servers before it is kept, and a mailbox that needed signing in starts syncing again. label renames its address, and null clears the name.

Arguments

<id>Required

Connected mailbox id such as cmb_5c1e9a7b3d2f48e6a0b4c7d1, as list returns it.

Flags

--paused

true pauses the mailbox and false resumes it. Left out, it stays as it is.

--password <value>

A new app password. Left out, the password stays. Pass - to read it from standard input, or @path to read it from a file, so it stays out of your shell history.

--label <value>

A name for the address, up to 120 characters, or null to clear it. Left out, the name stays.

--data <json|@file|->

The whole patch as JSON, inline, from a file with @path, or - for standard input. Flags override its keys.

Examples

openemail connected-mailboxes update cmb_5c1e9a7b3d2f48e6a0b4c7d1
Print the raw JSON
openemail connected-mailboxes update cmb_5c1e9a7b3d2f48e6a0b4c7d1 --json

Also available in

API
PATCH /connected-mailboxes/{id}
TypeScript
connectedMailboxes.update()
Python
connected_mailboxes.update()
Ruby
connected_mailboxes.update
PHP
connectedMailboxes->update
Go
ConnectedMailboxes.Update
Java
connectedMailboxes().update
C#
ConnectedMailboxes.UpdateAsync

openemail connected-mailboxes sync

Sync a connected mailbox now

Scopesthreads:writeNeeds a sign-in

Usage

openemail connected-mailboxes sync <id> [flags]

Asks for a sync straight away instead of at the next interval, and resolves at once with the mailbox. The sync follows within seconds, and lastSyncedAt moves when it has finished.

A mailbox is synced every 30 seconds while mail comes in, and less often after it has been quiet for a while, down to every five minutes. A paused mailbox, or one that needs signing in, is not synced.

Arguments

<id>Required

Connected mailbox id such as cmb_5c1e9a7b3d2f48e6a0b4c7d1, as list returns it.

Examples

openemail connected-mailboxes sync cmb_5c1e9a7b3d2f48e6a0b4c7d1
Print the raw JSON
openemail connected-mailboxes sync cmb_5c1e9a7b3d2f48e6a0b4c7d1 --json

Also available in

API
POST /connected-mailboxes/{id}/sync
TypeScript
connectedMailboxes.sync()
Python
connected_mailboxes.sync()
Ruby
connected_mailboxes.sync
PHP
connectedMailboxes->sync
Go
ConnectedMailboxes.Sync
Java
connectedMailboxes().sync
C#
ConnectedMailboxes.SyncAsync

openemail connected-mailboxes disconnect

Disconnect a mailbox

Scopesdomains:writeNeeds a sign-in
Asks you to confirm

Usage

openemail connected-mailboxes disconnect <id> [flags]

Stops syncing and sending through the mailbox, forgets its password and removes its address from the workspace. The mail already copied in stays in OpenEmail, and nothing is changed at the provider. An import of its history that is still running is cancelled.

To stop it for a while and keep it, use update with paused: true. To use it again later, start over with connect.

Arguments

<id>Required

Connected mailbox id such as cmb_5c1e9a7b3d2f48e6a0b4c7d1, as list returns it.

Examples

openemail connected-mailboxes disconnect cmb_5c1e9a7b3d2f48e6a0b4c7d1
Skip the confirmation, for scripts
openemail connected-mailboxes disconnect cmb_5c1e9a7b3d2f48e6a0b4c7d1 --yes

Also available in

API
DELETE /connected-mailboxes/{id}
TypeScript
connectedMailboxes.disconnect()
Python
connected_mailboxes.disconnect()
Ruby
connected_mailboxes.disconnect
PHP
connectedMailboxes->disconnect
Go
ConnectedMailboxes.Disconnect
Java
connectedMailboxes().disconnect
C#
ConnectedMailboxes.DisconnectAsync