Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Укажите токен и домен
- $token = 'ВАШ_API_ТОКЕН'; // Замените на ваш API токен
- $domain = 'ВАШ_ДОМЕН'; // Замените на ваш домен
- // URL для запроса списка пользователей
- $url = "https://biz.mail.ru/api/v1/domains/$domain/mailboxes";
- // Настройка CURL
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HTTPHEADER, [
- "Authorization: Bearer $token"
- ]);
- // Выполнение запроса
- $response = curl_exec($ch);
- // Проверка на ошибки CURL
- if (curl_errno($ch)) {
- echo "CURL Error: " . curl_error($ch);
- exit;
- }
- curl_close($ch);
- // Обработка ответа
- $data = json_decode($response, true);
- if (isset($data['errors'])) {
- echo "API Error: " . print_r($data['errors'], true);
- exit;
- }
- // Подготовка данных для импорта в MailCow
- $mailcowApiUrl = 'https://demo.mailcow.email/api/v1/add/mailbox'; // URL API MailCow
- $mailcowToken = 'ВАШ_MAILCOW_API_ТОКЕН'; // Замените на ваш API токен MailCow
- $mailcowHeaders = [
- "Content-Type: application/json",
- "X-API-Key: $mailcowToken"
- ];
- $importedUsers = [];
- $csvData = "ИМЯ_ЯЩИКА:ПАРОЛЬ:ИМЯ\n"; // Заголовок для CSV файла
- foreach ($data['mailboxes'] as $mailbox) {
- $firstname = $mailbox['firstname'] ?? '';
- $lastname = $mailbox['lastname'] ?? '';
- $name = trim("$firstname $lastname");
- $username = $mailbox['username'] ?? '';
- $password = bin2hex(random_bytes(8)); // Генерация случайного пароля
- $mailcowData = [
- "domain" => $domain,
- "name" => $name,
- "password" => $password,
- "password2" => $password,
- "quota" => 10240 // 10GB
- ];
- // Отправка запроса в MailCow
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $mailcowApiUrl);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $mailcowHeaders);
- curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($mailcowData));
- $response = curl_exec($ch);
- if (curl_errno($ch)) {
- echo "Ошибка при импорте пользователя $name: " . curl_error($ch) . "\n";
- continue;
- }
- $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- if ($responseCode !== 200) {
- echo "Ошибка при импорте пользователя $name: HTTP $responseCode\n";
- continue;
- }
- curl_close($ch);
- $importedUsers[] = $name;
- $csvData .= "$username:$password:$name\n"; // Добавляем строку в CSV
- }
- // Сохранение списка импортированных пользователей в JSON
- $jsonFileName = 'imported_mailcow_users.json';
- file_put_contents($jsonFileName, json_encode($importedUsers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
- // Сохранение списка импортированных пользователей в CSV
- $csvFileName = 'imported_mailcow_users.csv';
- file_put_contents($csvFileName, $csvData);
- echo "Импорт пользователей завершён. Список сохранён в $jsonFileName и $csvFileName";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement