cPanel – это приложение для управления веб-сервером, которое мы установили на наших серверах. Он имеет API-интерфейс на основе XML / JSON, который мы хотим использовать для доступа к данным, таким как список всех учетных записей электронной почты. Эта система огромна , я не могу найти ответ на это где угодно. Кто-нибудь знает, как перечислять учетные записи электронной почты в API cPanel?
Редактировать: мне нужна функция listpopswithdisk
( docs здесь ), в которой перечислены учетные записи электронной почты в определенном домене, но не знаю, как вызвать эту функцию.
Я думаю, что каждый может получить свои учетные записи электронной почты cPanel, используя этот обычный php-скрипт. Я использую этот скрипт для своей личной работы, и он работает нормально.
<?php $domain = 'domain'; $username = 'username'; $quota = 'default_quota'; $mails = "/home/".$username."/.cpanel/email_accounts.yaml"; $mail_info = file_get_contents($mails); $get_domain_mails = explode('account_count:',$mail_info); foreach ($get_domain_mails as $accounts_email) { $acc = explode(' ',$accounts_email); $m = $acc[1]; $clean = str_replace($m,"",$accounts_email); $get_data = str_replace("accounts:","",$clean); $exp_ag = explode("'",$get_data); foreach ($exp_ag as $brk) { $ex = explode("diskquota",$brk); foreach ($ex as $na) { $aex = explode('disk_mtime',$na); $aarx = explode("diskused",$aex[0]); foreach ($aarx as $tax) { $rexp = explode(":",$tax); $reaexp = str_replace(" ","",$rexp[1]); if ($reaexp!="") { $lex = explode($quota,$reaexp); $naex = explode("\n",$lex[0]); echo $naex[1]."\n"; } } } } } ?>
cpanel UAPI listpops должен делать трюк
UAPI Functions - Email::list_pops
Поскольку вы отметили PHP, это пример PHP
$cpanel = new CPANEL(); // Connect to cPanel - only do this once. // List all email addresses that contain "user". $emails = $cpanel->uapi( 'Email', 'list_pops', array( 'regex' => 'user', ) );
ссылка https://documentation.cpanel.net/display/SDK/UAPI+Functions+-+Email%3A%3Alist_pops
Кроме того, посмотрите на API-интерфейс WebMail Lite от Afterlogic, он имеет множество функций для этого, включая как PHP, так и JS, и REST API.
Атрибуты API REST
GET /account/list Returns list of users. Required parameters: * string token - token Optional parameters: * int page - page number of the list. Default value: 1 * int usersPerPage - number of users per page. Default value: 100 * string orderBy - sorting field. Accepted values: email / name / last login * string searchDesc - search string used for looking up specific account * string domain - domain Return: array Sample request: http://yourdomain/rest.php/account/list?token=yourToken curl -X GET -d "token=yourToken" http://yourdomain/rest.php/account/list Sample response: "result": [ { "Id": 32, "Email": "yourName@yourdomain.com", "FriendlyName": "Name" }, { "Id": 33, "Email": "yourOtherName@yourotherdomain.com", "FriendlyName": "OtherName" } ]
http://www.afterlogic.org/docs/webmail-lite/integration-and-development/rest-api#get-/account/list