+
This commit is contained in:
412
POSTFIX_DOVECOT_install.md
Normal file
412
POSTFIX_DOVECOT_install.md
Normal file
@ -0,0 +1,412 @@
|
||||
Подключаемся к нужному серверу:
|
||||
```sh
|
||||
ssh root@bigfoottrade.kz -p 2222
|
||||
```
|
||||
|
||||
Настройка почты на POSTFIX(агент передачи почты) И DOVECOT на основе https://www.alex-math.ru/administrirovaniye/ustanovka-postfix-dovecot-posfixadmin-na-ubuntu-20-04/ и https://www.youtube.com/watch?v=_pbH7GsVTrw&t=649s и https://www.youtube.com/watch?v=VptKRBVeCMo
|
||||
****************************************************************************************************
|
||||
## Устанавливаю Postfixadmin
|
||||
Для начала создаю базу в PostgreSQL с базой mail и пользователем mailreader и паролем major!reader1
|
||||
```sh
|
||||
cd /var/www/html &&
|
||||
sudo wget https://yer.dl.sourceforge.net/project/postfixadmin/postfixadmin-3.3.8/PostfixAdmin%203.3.8.tar.gz &&
|
||||
sudo tar xzvf "PostfixAdmin 3.3.8.tar.gz"
|
||||
```
|
||||
Создаю временный каталог в /var/www/html/PostfixAdmin/templates_c
|
||||
правлю способ подключения к базе:
|
||||
```sh
|
||||
sudo mcedit /srv/http/PostfixAdmin/config.inc.php
|
||||
```
|
||||
На это:
|
||||
```conf
|
||||
$CONF['configured'] = true;
|
||||
|
||||
$CONF['database_type'] = 'pgsql';
|
||||
$CONF['database_host'] = 'localhost';
|
||||
$CONF['database_user'] = 'mailreader';
|
||||
$CONF['database_password'] = 'major!reader1';
|
||||
$CONF['database_name'] = 'mail';
|
||||
|
||||
$CONF['emailcheck_resolve_domain'] = 'NO';
|
||||
```
|
||||
Также нужно поднастроить апачи добавив следующтй код в: sudo mcedit /etc/apache2/apache2.conf ниже того что указывает на <Directory /var/www/>
|
||||
Alias /PostfixAdmin/ "/var/www/html/PostfixAdmin/public/"
|
||||
<Directory "/var/www/html/PostfixAdmin/public/">
|
||||
Options FollowSymLinks
|
||||
AllowOverride None
|
||||
Allow from all
|
||||
Order allow,deny
|
||||
</Directory>
|
||||
Перезагружаю:
|
||||
```sh
|
||||
systemctl restart apache2.service
|
||||
```
|
||||
На последок:
|
||||
```sh
|
||||
sudo chown www-data:www-data -R /var/www/ &&
|
||||
sudo chown www-data:www-data -R /opt/app_api_mobile_v2/mobile_v2
|
||||
```
|
||||
Теперь можно открывать сайт по IP:
|
||||
```sh
|
||||
start http://77.240.38.108/PostfixAdmin/setup.php
|
||||
```
|
||||
```sh
|
||||
start https://77.240.38.108/PostfixAdmin/login.php
|
||||
```
|
||||
|
||||
Просит задать пароль, задал такой: 11qazxsw22
|
||||
Результат генерации: $CONF['setup_password'] = '$2y$10$ySo40K0pOn0Q5jLcBoK1yua5JaGXI.NIzTmUVBn1dreTaP2RkZ2My';
|
||||
И добавляем эту стору в: sudo mcedit /srv/http/PostfixAdmin/config.inc.php
|
||||
Потом обновляем страницу.
|
||||
Добавляем администратора введя пароль 11qazxsw22 емайл в качестве логина irigm@mail.ru и пароль: 33edcvfr44
|
||||
Можно взглянуть базу там должны создаться таблицы
|
||||
|
||||
Теперь осталось пойти на Postfixadmin, завести сначала почтовый домен, потом ящик и протестировать нашу почтовую систему, например, с помощью Thunderbird. Отправляем письма себе, другому пользователю в нашей системе. Потом пробуем послать себе письма с Gmail, Yandex, Mail.ru и наблюдаем за поведением системы, изучая логи. Основная настройка почты завершена. Теперь необходимо настроить DKIM, SPF, чтобы другие почтовые системы воспринимали нас как доверенных отправителей. Но об этом я расскажу в другом посте.
|
||||
|
||||
******************************************************************************************
|
||||
## Устанавливаю Postfix популярный почтовый агент (MTA) с открытым исходным кодом, который можно использовать для маршрутизации и доставки почты в системе Linux.
|
||||
```sh
|
||||
sudo apt-get update &&
|
||||
sudo apt install postfix postfix-pgsql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-pgsql mailutils postgresql
|
||||
```
|
||||
Ссохраняю оригинальный конфигурационный файл:
|
||||
```sh
|
||||
cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
|
||||
```
|
||||
Конфигурирую:
|
||||
```sh
|
||||
sudo dpkg-reconfigure postfix
|
||||
```
|
||||
Настраиваю так:
|
||||
```conf
|
||||
General type of mail configuration?: Internet Site
|
||||
System mail name: example.com (не mail.example.com)
|
||||
Root and postmaster mail recipient: имя пользователя основной учетной записи Linux (в наших примерах sammy)
|
||||
Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
|
||||
Force synchronous updates on mail queue?: No
|
||||
Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
|
||||
Mailbox size limit: 0
|
||||
Local address extension character: +
|
||||
Internet protocols to use: all
|
||||
```
|
||||
Можно взглянуть на настройки так: sudo mcedit /etc/postfix/main.cf
|
||||
|
||||
Через pgAdmin создаю нового пользователя mailreader с паролем major!reader1
|
||||
CREATE DATABASE mail WITH OWNER mailreader;
|
||||
Добавляю: sudo mc edit /etc/postgresql/12/main/pg_hba.conf:
|
||||
local postfix postfix md5
|
||||
Перезагружаю базу данных:
|
||||
service postgresql reload
|
||||
|
||||
Создаём файл для обращения к базе с алиасами: sudo mcedit /etc/postfix/pgsql_virtual_alias_maps.cf https://www.alex-math.ru/administrirovaniye/ustanovka-postfix-dovecot-posfixadmin-na-ubuntu-20-04/
|
||||
```conf
|
||||
user = mailreader
|
||||
password = major!reader1
|
||||
hosts = localhost
|
||||
dbname = mail
|
||||
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
|
||||
```
|
||||
Создаём файл для получения информации по виртуальным доменам: sudo mcedit /etc/postfix/pgsql_virtual_domains_maps.cf
|
||||
```conf
|
||||
user = mailreader
|
||||
password = major!reader1
|
||||
hosts = localhost
|
||||
dbname = mail
|
||||
query = SELECT domain FROM domain WHERE domain='%u'
|
||||
```
|
||||
Создаём файл для получения информации о почтовых ящиках: sudo mcedit /etc/postfix/pgsql_virtual_mailbox_maps.cf
|
||||
```conf
|
||||
user = mailreader
|
||||
password = major!reader1
|
||||
hosts = localhost
|
||||
dbname = mail
|
||||
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
|
||||
```
|
||||
Прописываем ранее созданные файлы в: sudo mcedit /etc/postfix/main.cf добавив строчки:
|
||||
```conf
|
||||
virtual_mailbox_base = /home/mail
|
||||
virtual_alias_maps = proxy:pgsql:/etc/postfix/pgsql_virtual_alias_maps.cf
|
||||
virtual_mailbox_domains = proxy:pgsql:/etc/postfix/pgsql_virtual_domains_maps.cf
|
||||
virtual_mailbox_maps = proxy:pgsql:/etc/postfix/pgsql_virtual_mailbox_maps.cf
|
||||
virtual_minimum_uid = 1024
|
||||
virtual_uid_maps = static:1024
|
||||
virtual_gid_maps = static:1024
|
||||
virtual_transport = dovecot
|
||||
dovecot_destination_recipient_limit = 1
|
||||
```
|
||||
Настройки безопасного соединения (также просто вставил в конец файла):
|
||||
```conf
|
||||
smtpd_sasl_auth_enable = yes
|
||||
smtpd_sasl_exceptions_networks = $mynetworks
|
||||
smtpd_sasl_security_options = noanonymous
|
||||
broken_sasl_auth_clients = yes
|
||||
smtpd_sasl_type = dovecot
|
||||
smtpd_sasl_path = private/auth
|
||||
smtpd_tls_cert_file = /etc/ssl/certs/bigfoottrade_kz.crt
|
||||
smtpd_tls_key_file = /etc/ssl/private/bigfoottrade_kz.key
|
||||
|
||||
smtpd_tls_security_level = encrypt
|
||||
```
|
||||
Похоже опции что ниже устарели:
|
||||
```conf
|
||||
smtpd_use_tls = yes
|
||||
smtp_use_tls = yes
|
||||
smtp_tls_security_level = encrypt
|
||||
smtp_enforce_tls=yes
|
||||
|
||||
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
|
||||
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
|
||||
smtp_tls_protocols = !SSLv2, !SSLv3
|
||||
smtpd_tls_protocols = !SSLv2, !SSLv3
|
||||
|
||||
tls_preempt_cipherlist = yes
|
||||
smtpd_tls_mandatory_ciphers = high
|
||||
tls_high_cipherlist = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:ADH-AES256-GCM-SHA384:ADH-AES256-SHA256:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES256-SHA384:ECDH-ECDSA-AES256-SHA384:AES256-GCM-SHA384:AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:ADH-AES128-GCM-SHA256:ADH-AES128-SHA256:ECDH-RSA-AES128-GCM-SHA256:ECDH-ECDSA-AES128-GCM-SHA256:ECDH-RSA-AES128-SHA256:ECDH-ECDSA-AES128-SHA256:AES128-GCM-SHA256:AES128-SHA256:NULL-SHA256
|
||||
|
||||
smtpd_tls_auth_only = yes
|
||||
smtpd_helo_required = yes
|
||||
smtp_tls_security_level = may
|
||||
smtp_tls_ciphers = export
|
||||
smtp_tls_loglevel = 1
|
||||
smtp_tls_CApath = /etc/ssl/certs
|
||||
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
|
||||
```
|
||||
Снимаем комментарии со следующих строк, или дописываем их при необходимости: sudo mcedit /etc/postfix/master.cf (просто добавил в конец файла)
|
||||
```conf
|
||||
submission inet n - n - - smtpd
|
||||
-o syslog_name=postfix/submission
|
||||
-o smtpd_tls_security_level=may
|
||||
-o smtpd_sasl_auth_enable=yes
|
||||
-o smtpd_sasl_type=dovecot
|
||||
-o smtpd_sasl_path=/var/spool/postfix/private/auth
|
||||
-o smtpd_sasl_security_options=noanonymous
|
||||
-o smtpd_sasl_local_domain=$myhostname
|
||||
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
|
||||
-o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination
|
||||
-o milter_macro_daemon_name=ORIGINATING
|
||||
|
||||
smtps inet n - n - - smtpd
|
||||
-o syslog_name=postfix/smtps
|
||||
-o smtpd_tls_wrappermode=yes
|
||||
-o smtpd_sasl_auth_enable=yes
|
||||
-o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
|
||||
|
||||
dovecot unix - n n - - pipe
|
||||
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}
|
||||
```
|
||||
Проверяю на наличие ошибок:
|
||||
```sh
|
||||
sudo postfix check
|
||||
```
|
||||
В конфигурационном файле прописывается список дорменов которых обслуживает данный агент доставки.
|
||||
```sh
|
||||
sudo mcedit /etc/postfix/main.cf
|
||||
```
|
||||
Примерно таокое:
|
||||
mydestination = $myhostname, your_domain, localhost.com, , localhost
|
||||
|
||||
Перезапускаем:
|
||||
```sh
|
||||
sudo systemctl restart postfix
|
||||
```
|
||||
******************************************************************************************
|
||||
## Настройка dovecot the Secure IMAP server
|
||||
Теперь устанавливаю и настраиваю Dovecot:
|
||||
sudo apt install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
|
||||
Создаю пользователя и каталог
|
||||
sudo adduser --system --no-create-home --uid 1024 --group --disabled-password --disabled-login --gecos 'dovecot virtual mail user' vmail
|
||||
mkdir /home/mail
|
||||
chown vmail:vmail /home/mail
|
||||
chmod 700 /home/mail
|
||||
Смотрим что мы создали:
|
||||
groups vmail
|
||||
|
||||
Настраиваем способ хранения сообщений: sudo mcedit /etc/dovecot/conf.d/10-mail.conf
|
||||
mail_location = maildir:/home/mail/%d/%u/
|
||||
|
||||
|
||||
Настраиваем слушателя аутентификации: sudo mcedit /etc/dovecot/conf.d/10-master.conf
|
||||
service auth {
|
||||
unix_listener auth-userdb {
|
||||
mode = 0600
|
||||
user = vmail
|
||||
group = vmail
|
||||
}
|
||||
unix_listener /var/spool/postfix/private/auth {
|
||||
mode = 0666
|
||||
user = postfix
|
||||
group = postfix
|
||||
}
|
||||
}
|
||||
|
||||
Настраиваем аутентификацию в Dovecot: sudo mcedit /etc/dovecot/conf.d/10-auth.conf
|
||||
Комментируем одну строку, снимаем комментарий с другой.
|
||||
#!include auth-system.conf.ext
|
||||
!include auth-sql.conf.ext
|
||||
|
||||
Настраиваем шифрование Dovecot: sudo mcedit /etc/dovecot/conf.d/10-ssl.conf
|
||||
ssl = required
|
||||
ssl_cert = </etc/haproxy/ssl/bigfoottrade_kz.pem
|
||||
ssl_key = </etc/haproxy/ssl/bigfoottrade_kz.pem
|
||||
|
||||
|
||||
Указываем Dovecot автоматически создавать каталоги при первом подключении клиента: sudo mcedit /etc/dovecot/conf.d/15-lda.conf
|
||||
lda_mailbox_autocreate = yes
|
||||
|
||||
Теперь настройка подключения к базе данных. Открываем файл: sudo mcedit /etc/dovecot/conf.d/auth-sql.conf.ext
|
||||
|
||||
passdb {
|
||||
driver = sql
|
||||
args = /etc/dovecot/dovecot-sql.conf.ext
|
||||
}
|
||||
userdb {
|
||||
driver = sql
|
||||
args = /etc/dovecot/dovecot-sql.conf.ext
|
||||
}
|
||||
|
||||
|
||||
Создаём файл с настройками для работы с PostgreSQL: sudo mcedit /etc/dovecot/dovecot-sql.conf.ext
|
||||
driver = pgsql
|
||||
connect = host=localhost dbname=mail user=mailreader password=major!reader1
|
||||
default_pass_scheme = MD5-CRYPT
|
||||
password_query = SELECT password FROM mailbox WHERE username = '%u'
|
||||
user_query = SELECT maildir, 1024 AS uid, 1024 AS gid FROM mailbox WHERE username = '%u'
|
||||
user_query = SELECT CONCAT('/home/mail/',LOWER(domain),'/',LOWER(maildir)),1024 AS uid, 1024 AS gid FROM mailbox WHERE username = '%u'
|
||||
|
||||
Наконец, указываем интерфейсы, на которых будет слушать наш Dovecot: sudo mcedit /etc/dovecot/dovecot.conf
|
||||
listen = *
|
||||
|
||||
Также добавить в этот файл следующую настройку:
|
||||
service stats {
|
||||
unix_listener stats-reader {
|
||||
user = vmail
|
||||
group = vmail
|
||||
mode = 0660
|
||||
}
|
||||
|
||||
unix_listener stats-writer {
|
||||
user = vmail
|
||||
group = vmail
|
||||
mode = 0660
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Настройка Dovecot завершена. Осталось сгенерировать сертификаты или получить их с помощью Let's Encrypt. Для тестовых целей сгенерируем самоподписанные сертификаты. Мы их положим в /etc/postfix:
|
||||
openssl req -new -x509 -days 730 -nodes -out /etc/postfix/public.pem -keyout /etc/postfix/private.pem -subj "/C=RU/ST=Msk/L=Msk/O=Local/OU=Mail/CN=fedor.bigfoottrade.kz"
|
||||
|
||||
Добавляем пользователю "dovecot" группу "mail":
|
||||
usermod -a -G dovecot mail
|
||||
usermod -a -G vmail mail
|
||||
|
||||
sudo systemctl enable dovecot
|
||||
sudo systemctl start dovecot
|
||||
|
||||
Теперь можно тестировать:
|
||||
Сначала необходимо убедиться в том, что почта доходит до нового ящика. Сделать это можно с помощью тестового письма:
|
||||
echo "Test mail" | mail -s "Test mail" admin@mqtt.kz
|
||||
Сообщение должно появиться в папке /home/mail/mqtt.kz/admin/new/. Если письма нет, проверьте лог Postfix:
|
||||
tail -f /var/log/mail.log
|
||||
|
||||
В настройках DNS настроил А запись на только что настроенный сервер:
|
||||
mail.mqtt.kz
|
||||
Также нужно настроить dkim чтобы почта не попадала в спам, записав открытый ключ шифрования в TXT запсь
|
||||
|
||||
|
||||
****************************************************************************************************
|
||||
## Настройка dkim для проверки что письмо действительно было отправлено с заявленного домена
|
||||
Созданно по этой инструкции:
|
||||
```sh
|
||||
start https://fornex.com/ru/help/dkim-postfix/
|
||||
```
|
||||
```sh
|
||||
sudo apt-get install opendkim opendkim-tools
|
||||
```
|
||||
mkdir -p /etc/postfix/dkim && cd /etc/postfix/dkim
|
||||
opendkim-genkey -D /etc/postfix/dkim/ -d mqtt.kz -s mail
|
||||
opendkim-genkey -D /etc/postfix/dkim/ -d geovizor.com -s mail
|
||||
|
||||
mv mail.private mail.mqtt.kz.private
|
||||
mv mail.private mail.geovizor.com.private
|
||||
|
||||
mv mail.txt mail.mqtt.kz.txt
|
||||
mv mail.txt mail.geovizor.com.txt
|
||||
|
||||
Создаём файл mcedit keytable и записываем в него ключи
|
||||
#имя_ключа домен:селектор:/путь/до/ключа
|
||||
mail._domainkey.mqtt.kz mqtt.kz:mail:/etc/postfix/dkim/mail.mqtt.kz.private
|
||||
mail._domainkey.geovizor.com geovizor.com:mail:/etc/postfix/dkim/mail.geovizor.com.private
|
||||
Создаём файл mcedit signingtable и записывает что чем подписывать
|
||||
#домен имя ключа
|
||||
*@mqtt.kz mail._domainkey.mqtt.kz
|
||||
*@geovizor.com mail._domainkey.geovizor.com
|
||||
Задаю права доступа:
|
||||
chown root:opendkim *
|
||||
chmod u=rw,g=r,o= *
|
||||
chmod g+r /etc/postfix/dkim/
|
||||
Смотрим содержимое TXT файла для записи в домен
|
||||
cat /etc/postfix/dkim/mail.mqtt.kz.txt
|
||||
cat /etc/postfix/dkim/mail.geovizor.com.txt
|
||||
И добавляю в DNS на хостинг:
|
||||
Name: mail._domainkey.mqtt.kz
|
||||
Text: v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtrObJxHaUBVtR4XzNuFzoa449K3l1z6+Mi4e83rFbBYmBZRYjiJn5h2PeiK1i2IpSaEKn32AlPy5gB7Ej41Fhg6LXswwRhhfvz8vClhRbUKT4I8oPBj9WZr7+4aohG1Vcks1q9cgmwdcGN+6qhKq/DJ+AC1TirNrEpSvR6JAqd4G70aJazI9su0bY5cbIv0pZGezvt+2pwJw6xpb501KudTFE8FTHxB51aLkgYS257MkovSu+qlVzPjoOsZcOY7hQtF8WB/Czod0QN05Ob/N3Qc/k2E4tpvxgokLXdYl/8KBMLMX9cRfIVbv+atuo59VFKHYIGD8Kom6akORkFeIlQIDAQAB
|
||||
|
||||
Заменяем все настройки на то что ниже: sudo mcedit /etc/opendkim.conf
|
||||
AutoRestart Yes
|
||||
AutoRestartRate 10/1h
|
||||
PidFile /var/run/opendkim/opendkim.pid
|
||||
Mode sv
|
||||
Syslog yes
|
||||
SyslogSuccess yes
|
||||
LogWhy yes
|
||||
UserID opendkim:opendkim
|
||||
Socket inet:8891@localhost
|
||||
Umask 022
|
||||
Canonicalization relaxed/relaxed
|
||||
Selector default
|
||||
MinimumKeyBits 1024
|
||||
KeyFile /etc/postfix/dkim/${MAIL_DOMAIN}.private
|
||||
KeyTable /etc/postfix/dkim/keytable
|
||||
SigningTable refile:/etc/postfix/dkim/signingtable
|
||||
|
||||
|
||||
Добавляем в конец: sudo mcedit /etc/postfix/main.cf
|
||||
milter_default_action = accept
|
||||
milter_protocol = 2
|
||||
smtpd_milters = inet:localhost:8891
|
||||
non_smtpd_milters = inet:localhost:8891
|
||||
|
||||
sudo systemctl start opendkim
|
||||
sudo systemctl enable opendkim
|
||||
service opendkim restart
|
||||
service postfix restart
|
||||
|
||||
********** Настройка SPF **********
|
||||
Например, SPF-запись «example.com. TXT «v=spf1 +a +mx -all»» говорит о том, что отправлять письма от имени домена «example.com» могут сервера, указанные в A и MX-записях этого домена, а письма, отправленные от других серверов должны быть удалены (Fail).
|
||||
Содержимое TXT файла для записи в домен
|
||||
Имя домена пустое:
|
||||
Содержимое: v=spf1 +a +mx -all
|
||||
|
||||
|
||||
********** Настройка DMARC https://www.unisender.com/ru/glossary/dmarc/**********
|
||||
Содержимое TXT файла для записи в домен
|
||||
Имя домена: _dmarc
|
||||
Содержимое: v=DMARC1; p=none;
|
||||
|
||||
!!! Для тестирования сервера на прохождение спам фильтра пишем письмо на https://www.mail-tester.com/ или https://spamtest.smtp.bz !!!
|
||||
********** web интерфейс для postfix — Roundcube **********
|
||||
cd /var/www/html
|
||||
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.5/roundcubemail-1.6.5-complete.tar.gz
|
||||
tar xzvf roundcubemail-1.6.5-complete.tar.gz
|
||||
chown -R www-data:www-data /var/www/html/Roundcube
|
||||
sudo apt-get install aspell aspell-en dbconfig-common fonts-glyphicons-halflings javascript-common libaspell15 libjs-bootstrap libjs-bootstrap4 libjs-codemirror libjs-jquery libjs-jquery-minicolors libjs-jquery-ui libjs-jstimezonedetect libjs-popper.js libjs-sizzle node-jquery php-auth-sasl php-mail-mime php-masterminds-html5 php-net-sieve php-net-smtp php-net-socket php-pspell php7.4-pspell
|
||||
https://bigfoottrade.kz/Roundcube/installer/
|
||||
language — ru_RU
|
||||
Предварительно создать базу:
|
||||
```sh
|
||||
start https://bigfoottrade.kz/Roundcube
|
||||
```
|
||||
|
||||
```sh
|
||||
start http://77.240.38.108/Roundcube
|
||||
```
|
||||
Reference in New Issue
Block a user