change_domain

The change_domain method creates a new domain or modifies the attributes of an existing domain.

Syntax

{
    <credentials object>, 
    "domains": <domain> 
    "attributes":
      {
        <key value pairs>
      }, 
   }
}

Request fields for change_domain

Request fields for change_domain method:

Field name

Obligation

Definition/Value

attributes

Required

The list of fields that you want to configure and their values.

For more information, see the Attributes table below.

create_only

Optional

Used to prevent changes to existing domains. If set to true and the specified domain exists, the domain will not be modified and an error will be returned.

domain

Required

The domain that you want to create or change.

Attributes fields

You can specify the following fields within the attributes array.

Field name

Obligation

Definition/Value

aliases

Optional

A list of alternate names for the domain. Users in the domain can receive mail that is sent to an alias domain. For example, if example- corporation.com is an alias for example.com, so mail that is sent to joe_user@example- corporation.com will be delivered to [email protected] The maximum number of aliases is 2000.

allow

Optional

A list of senders whose messages are not scanned for spam; may include wildcards. For example [email protected] and *@example.com. Maximum is 1000 addresses.

block

Optional

A list of email addresses whose messages will always be identified as spam; may include wildcards. For example, [email protected] and *@spammers- inc.com. Messages from these addresses will always be considered to be spam. Maximum is 1000 addresses.

brand

Optional

The default brand used for mailboxes in the domain. If undefined, the company brand is used.

catchall

Optional

If set, any mail sent to a mailbox in the domain that does not exist will be sent to the specified mailbox.

  • *Note**: This feature cannot be enabled for new domains.

company

Optional*

Used to reassign the domain to another company the admin controls. Should be a string; the name of the receiving company.

See the notes on domain reassignment below.

default_ password_encoding

Optional

The type of password hashing/encoding to be performed when OpenSRS receives an unencrypted password to store for a user. We recommend BCRYPT encoding.

disabled

Optional

If set to true, mailboxes in the domain will not function.

filterdelivery

Optional

The way in which spam messages are handled by the OpenSRS email filter.

Allowed values are:

  • quarantine — Spam messages are stored locally in the user's spam folder.

  • passthrough — Spam messages are delivered with the specified spamtag and spamheader.

If undefined, the company's value is used.

filtermx

Optional

The mail server (and optionally, SMTP port) to which messages received by filter users in this
domain are sent after spam and virus scanning.

language

Optional

The default Webmail UI language for new users in the domain. May be overridden by the user.

A list of valid languages is displayed in the metadata ->options field in the get_domain response.

limit_aliases

Optional

The maximum number of aliases that can be created for mailboxes in the domain. If this number is less than the number of aliases currently in the domain, no new aliases can be created. If not defined, any number of aliases can be created.

limit_users

Optional

The maximum number of users that can be created in the domain. If this number is less than the number of users currently in the domain, no new users can be created. If undefined, any number of users can be created.

notes_external

Optional

Any notes you want to add to the domain. Maximum is 4096 characters.

quota

Optional

The default maximum amount of storage (in bytes) that new mailboxes may use, including mail and file storage.

quota_maximum

Optional

The default maximum quota (in Megabytes) that can be assigned to any mailbox in the domain.

regen_passwords

Optional

If set to true, the next time a user logs in, their passwords will be converted to the encoding specified in default_password_encoding (if their current encoding differs from the one specified in default_password_encoding).

password_strength

Optional

The minimum level at which the password strength checks must pass (see change_user).

Valid values are null, "weak", "medium", "good", and "strong".

If set to null, the value will be inherited from the company level.

service_imap4

Optional

The default setting for new users for the IMAP4 service (enabled, disabled, or suspended). If enabled, new users can log in via IMAP4.

service_pop3

Optional

The default setting for new users for the POP3 service (enabled, disabled, or suspended). If enabled, new users can log in via POP3.

service_smtpin

Optional

The default setting for new users for the SMTPIN service (enabled, disabled, or suspended). If enabled, new users can send email.

service_ smtprelay

Optional

The default setting for new users for the SMTPRELAY service (enabled, disabled, or suspended).

service_smtprelay_webmail

Optional

The default setting for new users for the SMTPRELAY Webmail service (enabled, disabled, or suspended). If enabled, new users can send email via Webmail.

service_webmail

Optional

The default setting for new users for the Webmail service (enabled, disabled, or suspended). If enabled, new users can log in via Webmail.

smtp_sent_limit

Optional

The default maximum number of messages that the user can send in a 24 hour period. Maximum number is 10,000. If not defined, the company's smtp_sent_limit is used.

spamfolder

Optional

The folder to which messages that have been identified as spam are delivered. Maximum 128 characters.

spamheader

Optional

The tag that will be assigned to the header of spam messages. The format for the header must be [Capital letter]anything[:] anything. For example, XSpam: Spam detected. Maximum 512 characters.

spamlevel

Optional

The level of aggressiveness for spam filtering. Allowed values are: Normal, High, and Very High.

spamtag

Optional

The tag that is appended to an email message to identify it as spam. Maximum 30 characters.

timezone

Optional

The default Webmail UI timezone for users in this domain.

A list of valid timezones is displayed in the metadata ->options field in the get_domain response.

wm_domainalias

Optional

If set to true, Webmail will offer users different From addresses based on domain aliases.

workgroup

Optional

The default workgroup to which new accounts in the domain will belong.

📘

Domain Reassignment

Company admins may be configured to control multiple Companies. Currently, you must request that OpenSRS set this up for you - both companies must be controlled by the same billing entity.

Once set up, the company names you can reassign to will be included in the extra_info.roles section of the authenticate response.

It may be wise to always reset the brand to null before or during the domain reassignment, as the current brand will not be under the receiving company. If set at the domain level, the current brand will continue to work after reassignment, but it may cause confusion to anyone looking at the domain in the future.

Response fields for change_domain

The following fields may be returned in response to the change_domain
method:

Field name

Field name

Description/Value

error

Returned if success = false

A text string that explains the error.

error_number

Returned if success = false

A number that represents the error.

hints

Returned if success = false

Lists one or more attributes that had errors and suggests a possible cause of each error.

success

Always returned

Indicates whether the request was successful or not. Allowed values are true and false.

Examples for change_domain

Example 1

Changes the allow attribute.

Request

{
  "credentials": {
    "user": "[email protected]",
    "password": "sw0rdf1sh"
  },
  "domain": "example.com",
  "attributes": {
    "allow": [
      "*@example.com",
      "[email protected]"
    ] 
  }
}

Response

{
    "success": true
}

Example 2

Adds a note to the domain

Request

{
  "credentials": {
    "user": "[email protected]",
    "password": "sw0rdf1sh"
  },
  "domain": "example.com",
  "attributes": {
    "notes_external: "Has not paid.\nDo NOT enable without consulting 
Finance."
  } 
}

Response

{
    "success": true
}

Example 3

Attempts to create a domain that already exists (with create_only flag)

Request

{
  "attributes":{},
  "domain":"gob.com",
  "create_only":true,
  "credentials":{...}
}

Response

{
  "success":false,
  "error_number":23,
  "error":"Object already exists",
  "audit":"anger67_50c235f128"
}