sogo - веб-почта с открытым исходным кодом для предприятий и сообществ

Ответить
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

sogo - веб-почта с открытым исходным кодом для предприятий и сообществ

Сообщение ya »

Убедитесь, что у вас установлены необходимые пакеты для работы SOGo. Например, вам может понадобиться Postfix, Dovecot и базы данных (например, PostgreSQL или MySQL) для хранения пользователей.

Создайте таблицу для хранения данных пользователей, если она еще не создана.

Код: Выделить всё

CREATE TABLE users (
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    PRIMARY KEY (username)
);
Измените конфигурацию SOGo, Добавьте или измените следующие разделы:

Код: Выделить всё

// Enable user registration
SOGoUserRegistrationEnabled = YES;

// Set the registration URL
SOGoUserRegistrationURL = "http://your-domain.com/register";
Создайте страницу регистрации

Код: Выделить всё

<form action="http://your-domain.com/register" method="post">
    <label for="username">Username:</label>
    <input type="text" id="username" name="username"><br><br>
    <label for="password">Password:</label>
    <input type="password" id="password" name="password"><br><br>
    <label for="email">Email:</label>
    <input type="email" id="email" name="email"><br><br>
    <input type="submit" value="Register">
</form>
Обработка данных регистрации:

Код: Выделить всё

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];

    // Здесь должна быть логика подключения к базе данных
    // Предположим, что мы используем MySQL
    $conn = new mysqli('localhost', 'username', 'password', 'database');

    // Проверка соединения
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    // Хеширование пароля
    $hashed_password = password_hash($password, PASSWORD_DEFAULT);

    // Подготовка и выполнение запроса
    $stmt = $conn->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
    $stmt->bind_param("sss", $username, $hashed_password, $email);

    if ($stmt->execute()) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $stmt->error;
    }

    $stmt->close();
    $conn->close();
}
?>
Перезапустите SOGo

Код: Выделить всё

sudo systemctl restart sogo
Ответить