cPanel API 2 Functions - Email::changemx

Warning:

The cPanel API 2 system is deprecated. We strongly recommend that you use UAPI instead of cPanel API 2.


Description

This function changes an MX entry's configuration. For more information about MX record settings, read our Email Routing Configuration documentation.


Warning:

We strongly recommend that you use the following UAPI function instead of this function:

  • Email::change_mx — This function creates a Mail Exchanger (MX) record.

Important:

When you disable the DNS role, the system disables this function.


Examples


WHM API (JSON)

https://hostname.example.com:2087/cpsess##########/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=Email&cpanel_jsonapi_func=changemx&domain="example.com"&exchange="mail.example.com"&oldexchange="mail.example.com"&oldpreference="5"&preference="15"&alwaysaccept="auto"
Note:

For more information, read our Calls from the WHM API documentation.


LiveAPI PHP Class

$cpanel = new CPANEL(); // Connect to cPanel - only do this once.

// Update settings for mail.example.com.
$update_mx = $cpanel->api2(
    'Email', 'changemx',
    array(
        'alwaysaccept'          => 'auto',
        'domain'                => 'example.com',
        'exchange'              => 'mail.example.com',
        'oldexchange'           => 'mail.example.com',
        'oldpreference'         => '5',
        'preference'            => '15',
    )
);
Note:

For more information, read our Guide to the LiveAPI System.


LiveAPI Perl Module

my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.

# Update settings for mail.example.com.
my $update_mx = $cpliveapi->api2(
    'Email', 'changemx',
    {
        'alwaysaccept'          => 'auto',
        'domain'                => 'example.com',
        'exchange'              => 'mail.example.com',
        'oldexchange'           => 'mail.example.com',
        'oldpreference'         => '5',
        'preference'            => '15',
    }
);
Note:

For more information, read our Guide to the LiveAPI System.


cPanel Tag System (deprecated)

Warnings:
  • cPanel tags are deprecated . We strongly recommend that you only use the LiveAPI system to call the cPanel APIs. Examples are only present in order to help developers move from the old cPanel tag system to our LiveAPI .
  • cPanel API 2 calls that use cPanel tags vary in code syntax and in their output.
  • For more information, read our Deprecated cPanel Tag Usage documentation.

Command Line

cpapi2 --user=username Email changemx domain=example.com exchange=mail.example.com preference=15
Note:

For more information and additional output options, read our Guide to cPanel API 2 documentation or run the cpapi2 --help command.


Output (JSON)

{
  "cpanelresult": {
    "apiversion": 2,
    "func": "changemx",
    "data": [
      {
        "statusmsg": "Replacing existing entry on line matched old entry and old priority: 25:\nBind reloading on server1 using rndc zone: [example.com]\n",
        "status": 1,
        "checkmx": {
          "warnings": [
          ],
          "issecondary": 0,
          "local": 0,
          "detected": "local",
          "remote": 0,
          "isprimary": 1,
          "changed": 0,
          "secondary": 0,
          "mxcheck": "auto"
        },
        "results": "Replacing existing entry on line matched old entry and old priority: 25:\nBind reloading on server1 using rndc zone: [example.com]\n"
      }
    ],
    "event": {
      "result": 1
    },
    "module": "Email"
  }
}
Note:

Use cPanel's API Shell interface (cPanel >> Home >> Advanced >> API Shell) to directly test cPanel API calls.


Parameters

Parameter Type Description Possible values Example
alwaysaccept string

Whether the mail exchanger accepts mail for its domain.

This parameter defaults to auto.

  • auto — Allow cPanel to determine the appropriate role.
  • local — Always accept the domain's mail.
  • secondary — Accept mail until a higher priority mail server is available.
  • remote — Do not accept mail.
auto
domain string

Required

The mail exchanger's domain.

A valid domain on the cPanel account.

example.com
exchange string

Required

The mail exchanger's name.

A valid mail exchanger name.


mail.example.com
oldexchange string

Required

The name of an existing mail exchanger.


A valid mail exchanger on the cPanel account. mail.example.com
oldpreference integer

The oldexchange exchanger's priority value.

Note:

If multiple MX entries match the oldexchange value, the system uses this parameter to find the correct entry.

A positive integer. 5
preference integer

Required

The mail exchanger's priority value.

A positive integer.

Note:

Common practice recommends that you set the priority value to a number divisible by five.

15

Returns

Return Type Description Possible values Example
statusmsg string A message of success or a reason for failure.
  • A message of success that includes the domain name and server name.
  • A string that describes an error.
Replacing existing entry on line matched old entry and old priority: 25:\nBind reloading on server1 using rndc zone: [example.com]\n
status Boolean Whether the function succeeded.
  • 1 — The function succeeded.
  • 0 — The function failed.
1
checkmx hash A hash of the mail exchanger's data. This hash includes the warnings, issecondary, local, detected, remote, isprimary, changed, secondary, and mxcheck returns.

warnings

string

Warning messages, if any exist.

The function returns this value in the checkmx hash.

One or more warning messages.
Auto Detect of MX configuration not possible due to non-resolving MX entries. Defaulting to last known setting: local.

issecondary

Boolean

Whether the mail exchanger is a secondary exchanger.

The function returns this value in the checkmx hash.

  • 1 — Secondary.
  • 0 — Not secondary.

0

local

Boolean

Whether the mail exchanger is a local exchanger.

The function returns this value in the checkmx hash.

  • 1 — Local.
  • 0 — Not local.
0

detected

string

The mail exchanger type.

The function returns this value in the checkmx hash.

  • auto
  • local
  • secondary
  • remote
auto

remote

Boolean

Whether the mail exchanger is a remote exchanger.

The function returns this value in the checkmx hash.

  • 1 — Remote.
  • 0 — Not remote.
0

isprimary

Boolean

Whether the mail exchanger is the primary mail exchanger.

The function returns this value in the checkmx hash.

  • 1 — Primary.
  • 0 — Not primary.
0

changed

Boolean

Whether a change occurred during the function.

The function returns this value in the checkmx hash.

  • 1 — Change occurred.
  • 0 — No change.
1

secondary

Boolean

Whether the mail exchanger is a secondary exchanger.

The function returns this value in the checkmx hash.

  • 1 — Secondary.
  • 0 — Not secondary.

0

mxcheck

string

The mail exchanger type.

The function returns this value in the checkmx hash.

  • auto
  • local
  • secondary
  • remote
auto
results string A message of success or a reason for failure.
  • A message of success that includes the domain name and server name.
  • A string that describes an error.
Replacing existing entry on line matched old entry and old priority: 25:\nBind reloading on server1 using rndc zone: [example.com]\n
reason string

A reason for failure.

Note:

This function only returns a reason value if it failed.

A string that describes the error.

This is an error message.
result Boolean

Whether the function succeeded.

  • 1 — The function succeeded.
  • 0 — The function failed.
1