buy
Mail Settings

Description

Use this API to update the Exim Mail Server configuration in Webuzo.

Parameters

Required Parameter

General Settings

ACLs 

Access List 

Filters

Mail Configuration

RBL

Security

SpamAssassin

Sample Code

curl --insecure -u "WEBUZO_USER:WEBUZO_PASS" -X POST "https://WEBUZO_SERVER_IP:2005/index.php?api=json&act=mail_settings" -d "save_basic_options=Save" -d "default_quota=0" -d "systemfilter_control=1" -d "suspended_account_deliveries=queue" -d "exim_primary_hostname=custom" -d "exim_primary_hostname_val=mail.example.com" -d "max_hourly_email=custom" -d "max_hourly_email_val=200" -d "enable_roundcube=1"
<?php

// Webuzo API Credentials
$user = 'WEBUZO_USER';       // Your Webuzo Username
$pass = 'WEBUZO_PASS';       // Your Webuzo Password
$ip   = 'WEBUZO_SERVER_IP';  // Server IP or Hostname

$url = 'https://' . rawurlencode($user) . ':' . rawurlencode($pass) . '@' . $ip . ':2005/index.php?api=json&act=mail_settings';

// POST Data
$post = array(
    // REQUIRED: Trigger to save settings
    'save_basic_options' => 'Save',

    'default_quota' => '1',                     // 0 = Unlimited, 1 = User Defined
    'systemfilter_control' => '1',              // 1 = Default, 0 = None, 2 = Custom
    'suspended_account_deliveries' => 'deliver',// deliver, discard, block, queue

    // General Settings
    'exim_primary_hostname' => 'custom',
    'exim_primary_hostname_val' => 'mail.example.com',
    'max_hourly_email' => 'custom',
    'max_hourly_email_val' => '40',
    'max_notify_email' => 'custom',
    'max_notify_email_val' => '40',
    'mail_retry' => 'custom',
    'mail_retry_val' => '15',
    'enable_roundcube' => '1',
    'default_quota_val' => '1024',              // Value if default_quota is 1

    // Webmail Ports
    'webmail_port_ssl' => 'custom',
    'webmail_port_ssl_val' => '2096',
    'webmail_port_nonssl' => 'custom',
    'webmail_port_nonssl_val' => '2095',

    // Limits & timeouts
    'message_linelength_limit' => 'custom',
    'message_linelength_limit_val' => '2048',
    'message_size_limit' => 'custom',
    'message_size_limit_val' => '50',
    'max_smtp_conn_accept' => 'custom',
    'max_smtp_conn_accept_val' => '500',
    'deliver_queue_load_max' => 'custom',
    'deliver_queue_load_max_val' => '12',
    'queue_only_load' => 'custom',
    'queue_only_load_val' => '24',

    // Ports
    'daemon_smtp_ports' => 'custom',
    'daemon_smtp_ports_val' => '25 : 465 : 587',
    'tls_on_connect_ports' => 'custom',
    'tls_on_connect_ports_val' => '465',

    // Logs & DKIM
    'log_selector' => 'custom',
    'log_selector_val' => '+subject +arguments +received_recipients',
    'dkim_selector' => 'default',
    'dkim_selector_val' => '',

    // Filters & SpamAssassin Limits
    'systemfilter_control_val' => '/etc/exim/exim_system_filter',
    'spam_thresold' => 'unlimited',
    'ratelimit_spam_score_over_int_control' => 'unlimited',
    'fail_spam_score_over_int_control' => 'unlimited',
    'spam_header_control' => '***SPAM***',
    'spam_header_control_val' => '***SPAM***',
    'max_spam_scan_size_control' => '1000',

    // Access Lists (Empty strings clear the lists)
    'spammeripblocks' => '',
    'senderverifybypasshosts' => '',
    'mostlytrustedmailhosts' => '',
    'skipsmtpcheckhosts' => '',
    'backupmxhosts' => '',
    'trustedmailusers' => '',
    'rbl_whitelist' => '',

    // Security Options
    'openssl_options_control' => '+no_sslv2 +no_sslv3 +no_tlsv1 +no_tlsv1_1',
    'openssl_options_control_val' => '+no_sslv2 +no_sslv3 +no_tlsv1 +no_tlsv1_1',
    'tls_require_ciphers_control' => 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384',
    'tls_require_ciphers_control_val' => 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384',
);

// Initialize cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // Skip SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));

// Execute Request
$resp = curl_exec($ch);

if(curl_error($ch)){
    die('Curl Error: '.curl_error($ch));
}

curl_close($ch);

// Decode Response
$res = json_decode($resp, true);

// Check Result
if(!empty($res['done'])){
    echo "Success: Mail settings updated.\n";
    print_r($res['done']);
} else {
    echo "Error updating settings:\n";
    print_r($res['error']);
}

Output

Setting Saved
    Was this page helpful?
    Newsletter Subscription
    Subscribing you to the mailing list