PHP code example of exbil / mailcow-php-api

1. Go to this page and download the library: Download exbil/mailcow-php-api library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

exbil / mailcow-php-api example snippets



xbil\MailCowAPI;

// Create API client with default settings
$client = new MailCowAPI('https://mailcow.example.com', 'YOUR_API_KEY');

// Perform requests
$domains = $client->domains()->getDomains();
var_dump($domains);

// Disable SSL verification (NOT recommended for production!)
$client = new MailCowAPI(
    'https://mailcow.local', 
    'YOUR_API_KEY',
    null,    // HTTP client (null = default)
    false    // Disable SSL verification
);

// Set custom timeout (in seconds)
$client = new MailCowAPI(
    'https://mailcow.example.com',
    'YOUR_API_KEY',
    null,    // HTTP client
    true,    // Verify SSL
    60       // 60 seconds timeout
);

use GuzzleHttp\Client;

$httpClient = new Client([
    'timeout' => 30,
    'proxy' => 'http://proxy.example.com:8080',
    // ... other Guzzle options
]);

$client = new MailCowAPI(
    'https://mailcow.example.com',
    'YOUR_API_KEY',
    $httpClient
);

// Recommended: Use environment variables
$client = new MailCowAPI(
    getenv('MAILCOW_URL'),
    getenv('MAILCOW_API_KEY'),
    null,
    getenv('APP_ENV') === 'production'  // Only verify SSL in production
);

$client->domains()          // Domain management
$client->mailBoxes()        // Mailbox operations
$client->aliases()          // Alias management
$client->antiSpam()         // Anti-spam settings
$client->dkim()             // DKIM configuration
$client->fail2ban()         // Fail2Ban management
$client->quarantine()       // Quarantine operations
$client->logs()             // Log access
$client->status()           // System status
$client->queueManager()     // Mail queue management
$client->routing()          // Routing configuration
$client->oAuth()            // OAuth clients
$client->resources()        // Resource management
$client->appPasswords()     // App-specific passwords
$client->fwdhosts()         // Forward hosts
$client->ratelimits()       // Rate limiting
$client->domainAdmin()      // Domain admin management
$client->addressRewrite()   // Address rewriting rules
$client->tlsPolicy()        // TLS policy management
$client->SSO()              // Single Sign-On
$client->CORS()             // CORS configuration
$client->IdentityProvider() // Identity provider settings

// Get all domains
$domains = $client->domains()->getDomains();

// Create a new mailbox
$client->mailBoxes()->create([
    'local_part' => 'user',
    'domain' => 'example.com',
    'password' => 'securePassword123',
    'quota' => 2048
]);

// Get system status
$status = $client->status()->get();

// View logs
$logs = $client->logs()->get('mailcow', 100);

new MailCowAPI(
    string $url,                    // Required: MailCow instance URL
    string $token,                  // Required: API token
    ?Client $httpClient = null,     // Optional: Custom Guzzle client
    bool $verifySSL = true,         // Optional: Verify SSL certificates
    int $timeout = 120              // Optional: Request timeout in seconds
);
json
{
    "il/mailcow-php-api": "^0.15.0"
    }
}