Как настроить полный почтовый сервер (Postfix) с помощью «Roundcube» (веб-почта) в Ubuntu / Debian

Создание почтового сервера на машинах под управлением Linux может быть одной из самых важных вещей, которую должен сделать каждый системный администратор при первоначальной настройке серверов, если вы не понимаете, что это значит; это просто: если у вас есть веб-сайт, например « example.com », вы можете создать учетную запись электронной почты, например « [email protected] », чтобы использовать ее для легко отправлять/получать электронные письма вместо использования таких сервисов, как Hotmail , Gmail , Yahoo Mail и т. д.

В этой статье мы узнаем, как это сделать, установив почтовый сервер Postfix с приложением веб-почты « Roundcube » и его зависимости от версий LTS Debian 10/9 и Ubuntu 20.04/18.04/16.04 .

На этом страница

  • Задайте имя хоста и создайте записи DNS для почтового домена
  • Установка Apache, MariaDB и PHP в Ubuntu
  • Установка почтового сервера Postfix в Ubuntu
  • Тестирование почтового сервера Postfix в Ubuntu
  • Установка Dovecot IMAP и POP в Ubuntu
  • Установка Roundcube Веб-почта в Ubuntu
  • Создание виртуального хоста Apache для веб-почты Roundcube.
  • Создание Пользователи почты для доступа к почте через Roundcube

Шаг 1. Задайте имя хоста и создайте записи DNS для домена

1. Сначала установите действительное имя хоста FQDN ( Fully Qualified Domain Name ) для вашего сервера Ubuntu с помощью команды hostnamectl, как показано.

 $ sudo hostnamectl set-hostname  

2. Затем вы необходимо добавить записи MX и A для вашего домена в панель управления DNS, которая направляет другие MTA, которые ваш почтовый сервер mail.yourdomain За доставку электронной почты отвечает домен .com .

 MX-запись @ mail.tecmint.commail.tecmint.com  

Шаг 2 : Установка Apache, MariaDB и PHP в Ubuntu

3. Чтобы создать работающий почтовый сервер с помощью « Roundcube ”, Нам нужно сначала установить пакеты Apache2 , MariaDB и PHP , чтобы Итак, запустите.

 $ sudo apt-get update -y $ sudo apt-get upgrade -y $ sudo apt install apache2 apache2-utils mariadb-server mariadb-client php7.4 libapache2-mod-  php7.4 php7.4-mysql php-net-ldap2 php-net-ldap3 php-imagick php7.4-common php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-  zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp php-net-smtp php-mail-mime php-net-idna2 mailutils 

В Debian 10/9 вам необходимо загрузить и установить SURY PHP PPA репозиторий для установки PHP 7.4 на Debian 10/9 , как показано.

 $ sudo apt -y install lsb  -release apt-transport-https ca-сертификаты $ sudo wget -O/etc/apt/trusted.gpg.d/php. gpg https://packages.sury.org/php/apt.gpg$ echo "deb https://packages.sury.org/php/$ (lsb_release -sc) main" |  sudo tee/etc/apt/sources.list.d/php.list$ sudo apt update $ sudo apt install apache2 apache2-utils mariadb-server mariadb-client php7.4 libapache2-mod-php7.4 php7.4-mysql php  -net-ldap2 php-net-ldap3 php-imagick php7.4-common php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4  -mbstring php7.4-bz2 php7.4-intl php7.4-gmp php-net-smtp php-mail-mime php-net-idna2 mailutils 

Шаг 3: Установка почтового сервера Postfix на Ubuntu

4. Postfix - это агент передачи почты ( MTA ), который ответственное программное обеспечение для доставки и получения электронных писем, необходимо для создания полноценного почтового сервера.

Чтобы установить его в Ubuntu/Debian или даже Mint, запустите:

 $ sudo apt-get install postfix 

Во время установки вам будет предложено выбрать тип конфигурации почты, выбрать « Интернет-сайт ».

Установить Postfix в Ubuntu

5. Теперь введите полное доменное имя, которое вы хотите использовать для отправки и получения электронных писем.

Установить почтовый домен Postfix

6. После установки Postfix он автоматически запустится и создаст новый /etc/ файл postfix/main.cf . Вы можете проверить версию Postfix и статус службы с помощью следующих команд.

 $ postconf mail_version $ sudo systemctl status postfix 

Проверьте версию Postfix

Шаг 4. Тестирование почтового сервера Postfix на Ubuntu

7. Теперь попробуйте проверить, что ваш почтовый сервер подключается к порту 25, используя следующую команду.

 $ telnet gmail-smtp-in.l.google.com 25Попытка 74.125.200.27 ...  Подключено к gmail-smtp-in.l.google.com. Escape-символ - '^]'. 220 mx.google.com ESMTP k12si849250plk.430 - gsmtp 

Приведенное выше сообщение указывает на то, что соединение успешно установлена. Введите quit , чтобы закрыть соединение.

8. Вы также можете использовать почту программа для отправки и чтения электронных писем с помощью следующей команды.

 $ mail [email protected]  Копия :  Тема : Тестирование  Мой почтовый сервер Postfix Я отправляю это письмо с помощью почтового сервера postfix с машины Ubuntu 

Шаг 5: Установка Dovecot IMAP и POP в Ubuntu

9. Dovecot - это агент доставки почты ( MDA ), он доставляет электронные письма с/на почтовый сервер, чтобы установить его, запустите следующую команду.

 $ sudo apt-get install dovecot-imapd dovecot-pop3d 

Установите Dovecot в Ubuntu

10. Затем перезапустите службу Dovecot с помощью следующей команды.

 $ sudo systemctl restart dovecotOR $ sudo service dovecot restart 

Запустить Dovecot в Ubuntu

Шаг 6. Установка веб-почты Roundcube в Ubuntu

11. Roundcube - это сервер веб-почты, который вы ' Я буду использовать для управления электронной почтой на вашем сервере, у него простой веб-интерфейс для выполнения этой работы, его можно настроить, установив дополнительные модули и темы.

 $ wget https://github.com /roundcube/roundcubemail/releases/download/1.4.8/roundcubemail-1.4.8.tar.gz$ tar -xvf roundcubemail-1.4.8.tar.gz $ sudo mv roundcubemail-1.4.8/var/www/html/ roundcubemail $ sudo chown -R www-data: www-data/var/www/html/roundcubemail/$ sudo chmod 755 -R/var/www/html/roundcubemail/

12. Затем вам нужно создать новую базу данных и пользователя для Roundcube и предоставить все права новому пользователю на запись в базу данных.

 $ sudo mysql -u root  MariaDB [(none)  ]>  СОЗДАТЬ БАЗУ ДАННЫХ roundcube НАБОР ХАРАКТЕРА ПО УМОЛЧАНИЮ utf8 COLLATE utf8_general_ci;  MariaDB [(none)]>  СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [защищенный адрес электронной почты] ИДЕНТИФИЦИРОВАН "паролем";  MariaDB  [(none)]>  ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА roundcube. * TO [email protected];  MariaDB [(none)]>  привилегии очистки;  MariaDB [(  none)]>  quit; 

13. Затем импортируйте исходные таблицы в базу данных Roundcube.

  $ sudo mysql roundcube /www/html/roundcubemail/SQL/mysql.initial.sql

Шаг 7. Создайте виртуальный хост Apache для веб-почты Roundcube

14. Создайте виртуальный хост apache для веб-почты Roundcube .

 $ sudo nano/etc/apache2/sites-available/ roundcube.conf 

Добавьте в него следующую конфигурацию.

ServerName tecmint.com DocumentRoot/var/www/html/roundcubemail/ErrorLog $ {APACHE_LOG_DIR}/roundcube_error.log CustomLog $ {APACHE_LOG_DIR}/roundcube_access.log объединено Параметры FollowSymLinks All /Directory> Параметры FollowSymLinks MultiViews AllowOverride All Order разрешить, запретить разрешение для всех

15 . Затем включите этот виртуальный хост и перезагрузите apache для внесения изменений.

 $ sudo a2ensite roundcube.conf $ sudo systemctl reload apache2 

16. Теперь вы можете получить доступ к веб-почте, перейдя по адресу http://yourdomain.com/roundcubemail/installer/.

Roundcube Webmail Installer

16. Затем перейдите к настройкам базы данных и добавьте детали базы данных.

Настройки базы данных веб-почты Roundcube

17. После внесения всех изменений создайте файл config.inc.php .

Создать файл конфигурации Roundcube

18. После завершения установки и финальных тестов удалите установщик и убедитесь, что параметр enable_installer в config.inc.php отключен.

 $ sudo rm/ var/www/html/roundcubemail/installer/-r 

19. Теперь перейдите на страницу входа и введите имя пользователя и пароль пользователя.

 http://yourdomain.com/roundcubemail/

Roundcube Вход в веб-почту

Шаг 8: Создание пользователей почты

20. Чтобы начать использовать веб-почту Roundcube, у вас будет к c создайте нового пользователя, для этого запустите.

 $ sudo useradd myusername 

Замените « myusername » на имя пользователя вы хотите, создайте пароль для нового пользователя, запустив.

 $ sudo passwd myusername 

21. Теперь вернитесь к страницу входа и введите имя пользователя и пароль только что созданного пользователя.

Вы пытались создать почтовый сервер раньше? Как прошло? Вы раньше использовали Roundcube или какой-либо другой почтовый сервер? Что вы думаете об этом?


Привет, могу ли я использовать базу данных PostgreSQL для этой настройки?

Ответ


Я установил Roundcube , как описано в HowTo. Когда я ввожу URL-адрес сервера/установки, я получаю 404. Если я ввожу URL-адрес для корня сервера, я получаю следующее:

ОШИБКА КОНФИГУРАЦИИ
config.inc .php не найден.
Пожалуйста, прочтите инструкции по УСТАНОВКЕ!

Я также заметил, что не было инструкций по настройке файла http.conf , как-то что-то не настраивается. Не могли бы вы дать мне пару указателей, где искать?

Ответьте


@Frank,

Проверьте шаг 7, пункт 14 для конфигурации Apache для Roundcube…

Ответить


Большинство кнопок в интерфейсе Roundcube неактивны и неактивны. Почему это?

Ответ


На шаге 2 не удалось найти многие пакеты (я использую сервер Debian 10).

Информация о терминале:

[защита электронной почты]:/etc/apache2/sites-enabled # sudo apt install apache2 apache2-utils mariadb-server mariadb-client php7.4 libapache2-mod-php7.4 php7.4- mysql php-net-ldap2 php-net-ldap3 php-imagick php7.4-common php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7 .4-mbstring php7.4-bz2 php7.4-intl php7. 4-gmp php-net-smtp php-mail-mime php-net-idna2 mailutils
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Пакет php-net-ldap2 недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника

Пакет php-net-ldap3 недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, является устаревшим или
доступен только из другого источника

E: невозможно найти пакет php7.4
E: не удалось найти ни один пакет по glob ‘php7.4’
E : Не удалось найти ни один пакет по регулярному выражению ‘php7.4’
E: Не удалось найти пакет libapache2-mod-php7.4
E: Не удалось найти ни один пакет по glob ‘libapache2- mod-php7.4 ‘
E: не удалось найти какой-либо пакет с помощью регулярного выражения’ libapache2-mod-php7.4 ‘
E: невозможно найти пакет php7.4-mysql
E: не удалось найти пакет по glob ‘php7.4-mysql’
E: Не удалось найти какой-либо пакет с помощью регулярного выражения ‘php7.4-mysql’
E: Пакет ‘php-net-ldap2’ не имеет кандидата на установку
E: Пакет ‘php-net-ldap3’ имеет нет кандидата на установку
E: Не удалось найти пакет php7.4-common
E: Не удалось найти ни один пакет по glob ‘php7.4-common’
E: Не удалось ‘ t найти любой пакет с помощью регулярного выражения ‘php7.4-common’
E: невозможно найти пакет php7.4-gd
E: не удалось найти ни один пакет с помощью glob ‘php7.4-gd ‘
E: не удалось найти ни один пакет по регулярному выражению’ php7.4-gd ‘
E: невозможно найти пакет php7.4-imap
E: не удалось найти любой пакет по glob ‘php7.4-imap’
E: Не удалось найти ни один пакет с помощью регулярного выражения ‘php7.4-imap’
E: Не удалось найти пакет php7.4-json
E: Не удалось найти ни один пакет по glob ‘php7.4-json’
E: Не удалось найти ни один пакет по регулярному выражению ‘php7.4-json’
E: Не удалось найти пакет php7.4-curl
E: не удалось найти ни один пакет по glob ‘php7.4-curl’
E: не удалось найти ни один пакет по регулярному выражению ‘php7.4 -curl ‘
E: невозможно найти пакет php 7.4-zip
E: не удалось найти ни один пакет по glob ‘php7.4-zip’
E: не удалось найти ни один пакет по регулярному выражению ‘php7.4-zip’
E: не удалось найти пакет php7.4-xml
E: не удалось найти ни один пакет по glob ‘php7.4-xml’
E: не удалось найти ни один пакет по регулярному выражению ‘php7.4-xml’
E: не удалось найти пакет php7.4-mbstring
E: не удалось найти ни один пакет по glob ‘php7.4-mbstring’
E: не удалось найти какой-либо пакет с помощью регулярного выражения ‘php7.4-mbstring’
E: невозможно найти пакет php7.4-bz2
E: не удалось найти ни один пакет с помощью glob ‘php7 .4-bz2 ‘
E: не удалось найти какой-либо пакет с помощью регулярного выражения’ php7.4-bz2 ‘
E: невозможно найти пакет php7.4-intl
E: Не удалось найти ни один пакет по glob ‘php7.4-intl’
E: Не удалось найти ни один пакет по регулярному выражению ‘php7.4-intl’
E: Не удалось найти пакет php7. 4-gmp
E: не удалось найти ни один пакет по glob ‘php7.4-gmp’
E: не удалось найти ни один пакет по регулярному выражению ‘php7.4-gmp’

Ответить


@Michael,

Я думаю, что PHP 7. 4 не входит в официальный репозиторий Debian. Если вы все еще хотите установить PHP 7.4 в Debian 10, вам необходимо включить репозиторий SURY PHP PPA, а затем установить PHP 7.4 в Debian 10 или Debian 9, как показано.

Установить PHP 7.4 в Debian 10

 $ sudo apt -y install lsb-release apt-transport-https ca-Certificates $ sudo wget -O/etc/apt/trusted.gpg.d/php.gpg https://packages.  sury.org/php/apt.gpg$ echo "deb https://packages.sury.org/php/$ (lsb_release -sc) main" |  sudo tee/etc/apt/sources.list.d/php.list$ sudo apt update $ sudo apt install apache2 apache2-utils mariadb-server mariadb-client php7.4 libapache2-mod-php7.4 php7.4-mysql php  -net-ldap2 php-net-ldap3 php-imagick php7.4-common php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4  -mbstring php7.4-bz2 php7.4-intl php7.4-gmp php-net-smtp php-mail-mime php-net-idna2 mailutils 

Ответ


Спасибо за этот учебник. Это было действительно полезно.

Однако я могу получать электронные письма от Roundcube, но я не могу отправлять электронные письма из этого интерфейса. Я получаю следующую ошибку: Ошибка SMTP (-1): сбой подключения к серверу.

Ответ


Практически все пакеты не загружаются/не могут быть найдены при выполнении шага 2

Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет php7.4
E: не удалось найти ни один пакет по glob ‘php7.4’
E: не удалось найти ни один пакет по регулярному выражению ‘php7.4’
E: невозможно найти пакет libapache2-mod- php7.4
E: Не удалось найти ни один пакет по glob ‘libapache2-mod-php7.4’
E: Не удалось найти ни один пакет по регулярному выражению ‘libapache2-mod-php7.4 ‘
E: не удалось найти пакет php7.4-mysql
E: не удалось найти ни один пакет по glob’ php7.4-mysql ‘
E: не удалось найти любой пакет с помощью регулярного выражения ‘php7.4-mysql’
E: невозможно найти пакет php7.4-common
E: Не удалось найти ни один пакет с помощью glob ‘php7.4-common’
E: не удалось найти пакет с помощью регулярного выражения ‘php7.4-common’
E: невозможно найти пакет php7.4-gd
E: не удалось найти ny пакет от glob ‘php7.4-gd’
E: не удалось найти какой-либо пакет с помощью регулярного выражения ‘php7.4-gd’
E: невозможно найти пакет php7.4-imap
E: Не удалось найти ни один пакет по glob ‘php7.4-imap’
E: Не удалось найти ни один пакет по регулярному выражению ‘php7.4-imap’
E: Не удалось найти пакет php7.4-json
E: не удалось найти ни один пакет по glob ‘php7.4-json’
E: не удалось найти ни один пакет по регулярному выражению ‘php7.4 -json ‘
E: не удалось найти пакет php7.4-curl
E: не удалось найти ни один пакет по glob’ php7.4-curl ‘
E: не удалось’ t найти какой-либо пакет с помощью регулярного выражения ‘php7.4-curl’
E: невозможно найти пакет php7.4-zip
E: не удалось найти ни один пакет с помощью glob ‘php7.4-zip ‘
E: не удалось найти ни один пакет по регулярному выражению’ php7.4-zip ‘
E: невозможно найти пакет php7.4-xml
E: не удалось найти любой пакет по glob ‘php7.4-xml’
E: не удалось найти ни один пакет по регулярному выражению ‘php7.4-xml’
E: невозможно найти пакет php7. 4-mbstring
E: Не удалось найти ни один пакет по glob ‘php7.4-mbstring’
E: Не удалось найти ни один пакет по регулярному выражению ‘php7.4-mbstring’
E: не удалось найти пакет php7.4-bz2
E: не удалось найти ни один пакет по glob ‘php7.4-bz2’
E: не удалось найти ни один пакет по регулярному выражению ‘php7.4-bz2’
E: не удалось найти пакет php7.4-intl
E: не удалось найти ни один пакет по glob ‘php7.4-intl’
E: Не удалось найти ни один пакет с помощью регулярного выражения ‘php7.4-intl’
E: Не удалось найти пакет php7.4-gmp
E: Не удалось найти ни один пакет с помощью glob ‘php7 .4-gmp ‘
E: Не удалось найти ни один пакет с помощью регулярного выражения’ php7.4-gmp ‘

Ответить


@Ian,

Какую версию выпуска Ubuntu вы используете?

Ответить

Оцените статью
futurei.ru
Добавить комментарий