Версии: Debian 11 5.10.92-1 x86_64 - nginx/1.21.6 - mysql 15.1 10.5.12-MariaDB - PHP 7.4.25 (cli) - dovecot-core/stable, теперь 1:2.3.13+dfsg1-2
У меня есть конфигурация postfix/dovecot, работающая для получения электронных писем. После переключения с rainloop на roundcube я не вижу никаких входящих писем в сети roundcube. Но иногда я захожу в roundcube и вижу все свои электронные письма в папке «Входящие», но если я нажимаю на что-либо или обновляю страницу, они все исчезают. Отправка электронных писем из roundcube также приводит к бесконечному колесу загрузки без тайм-аута.
К сожалению, у roundcube нет журналов ошибок, а у dovecot есть только журналы успешных входов в систему. Ничего, что указывало бы на то, что что-то сломано; кроме исчезающих писем.
/var/журнал/mail.info:
6 февраля 13:30:52 почта dovecot: imap-login: Логин: user=<admin@domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=9717, secure, session= <WKMOr13Xss5/AAAB>
6 февраля 13:30:52 почта dovecot: imap(admin@domain.com)<9717><WKMOr13Xss5/AAAB>: Вышел из системы=82 из=756 удалено=0 удалено=0 отправлено в корзину=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
6 февраля 13:30:52 почта dovecot: imap-login: Логин: user=<admin@domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=9719, secure, session= <ЗуЭПр13Хц5/АААБ>
6 февраля 13:30:52 почта dovecot: imap(admin@domain.com)<9719><ZuEPr13Xts5/AAAB>: Вышел из системы=44 из=739 удалено=0 удалено=0 отправлено в корзину=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
6 февраля 13:30:56 почта dovecot: imap-login: Логин: user=<admin@domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=9723, secure, session= <cedKr13XuM5/AAAB>
6 февраля 13:30:56 почта dovecot: imap(admin@domain.com)<9723><cedKr13XuM5/AAAB>: Вышел из системы=44 из=739 удалено=0 удалено=0 отправлено в корзину=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
/var/log/roundcube/error.log пустой.
Я почти уверен, что это что-то с IMAP на dovecot, так как вход в систему работает, но поиск электронных писем работает только примерно в 10% случаев. Без каких-либо журналов ошибок для устранения неполадок я не знаю, что делать дальше, кроме проб и ошибок, связанных с файлами конфигурации.
Кто-нибудь может помочь?
.
Я исключил многие конфиги из-за того, насколько они массивны. Я могу добавить любые дополнительные файлы конфигурации, но я подумал, что они наиболее актуальны.
Конфигурация круглого куба:
<?php
$config = array();
// Do not set db_dsnw here, use dpkg-reconfigure roundcube-core to configure database!
include_once("/etc/roundcube/debian-db-roundcube.php");
$config['default_host'] = 'localhost';
$config['smtp_server'] = 'localhost';
// SMTP port. Use 25 for cleartext, 465 for Implicit TLS, or 587 for STARTTLS (default)
$config['smtp_port'] = 587;
// SMTP username (if required) if you use %u as the username Roundcube
// will use the current username for login
$config['smtp_user'] = '%u';
// SMTP password (if required) if you use %p as the password Roundcube
// will use the current user's password for login
$config['smtp_pass'] = '%p';
// provide an URL where a user can get support for this Roundcube installation
// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config['support_url'] = '';
// Name your service. This is displayed on the login screen and in the window title
$config['product_name'] = 'Roundcube Webmail';
// This key is used to encrypt the users imap password which is stored
// in the session record. For the default cipher method it must be
// exactly 24 characters long.
$config['des_key'] = 'k';
// List of active plugins (in plugins/ directory)
// Debian: install roundcube-plugins first to have any
$config['plugins'] = array(
);
// skin name: folder from skins/
$config['skin'] = 'elastic';
// Disable spellchecking
// Debian: spellchecking needs additional packages to be installed, or calling external APIs
// see defaults.inc.php for additional informations
$config['enable_spellcheck'] = false;
<?php
$dbuser='roundcube';
$dbpass='pass';
$basepath='';
$dbname='roundcube';
$dbserver='localhost';
$dbport='3306';
$dbtype='mysql';
<?php
include_once("/etc/roundcube/debian-db.php");
switch ($dbtype) {
case "sqlite":
case "sqlite3":
$config['db_dsnw'] = "sqlite:///$basepath/$dbname?mode=0640";
break;
default:
if ($dbport != '') $dbport=":$dbport";
if ($dbserver == '') $dbserver="localhost";
$config['db_dsnw'] = "$dbtype://$dbuser:$dbpass@$dbserver$dbport/$dbname";
break;
}
?>
Конфигурация голубятни:
## Конфигурационный файл Dovecot
# Включить установленные протоколы
!include_try /usr/share/dovecot/protocols.d/*.protocol
протоколы = imap pop3 lmtp
слушай = *
postmaster_address = почтмейстер вappercorp.net
##
## Настройки сервера словарей
##
дикт {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
# Доступ к этому файлу обычно осуществляется через раздел passdb {} или userdb {} в
# conf.d/auth-sql.conf.ext
драйвер = mysql
connect = host=127.0.0.1 dbname=mailsrvdb пользователь=maildbuser пароль=пароль
default_pass_scheme = SHA512-CRYPT
password_query = ВЫБЕРИТЕ адрес электронной почты в качестве пользователя, пароль FROM virtual_users WHERE email='%u';
##
## Процессы аутентификации
##
disable_plaintext_auth = да
auth_mechanisms = простой логин
!include auth-system.conf.ext
##
## Расположение почтовых ящиков и пространства имен
##
mail_location = maildir:/var/mail/vhosts/%d/%n/
почтовый ящик пространства имен {
входящие = да
}
почтовая_привилегированная_группа = почта
протокол !indexer-worker {
}
служба imap-логин {
inet_listener imap {
порт = 143
}
inet_listener IMAP {
порт = 993
SSL = да
}
}
служба pop3-логин {
inet_listener pop3 {
порт = 0
}
inet_listener pop3s {
порт = 995
SSL = да
}
}
сервисная подача-логин {
передача inet_listener {
# порт = 587
}
}
служба лмтп {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
#режим = 0666i
режим = 0600
пользователь = постфикс
группа = постфикс
}
}
служебная карта {
# Большая часть памяти уходит на mmap() файлов. Возможно, вам придется увеличить это
# ограничение, если у вас огромные почтовые ящики.
#vsz_limit = $default_vsz_limit
# Макс. количество процессов IMAP (соединений)
#процесс_лимит = 1024
}
сервис поп3 {
# Макс. количество процессов POP3 (соединений)
#процесс_лимит = 1024
}
представление услуги {
# Макс. количество процессов отправки SMTP (соединений)
#процесс_лимит = 1024
}
авторизация службы {
unix_listener /var/spool/postfix/private/auth {
режим = 0660
пользователь = постфикс
группа = постфикс
}
unix_listener auth-userdb {
режим = 0600
пользователь = vmail
}
пользователь = голубятня
}
служба аутентификации {
# Рабочий процесс Auth по умолчанию запускается от имени root, так что он может получить доступ
# /etc/тень. Если в этом нет необходимости, пользователя следует изменить на
# $default_internal_user.
пользователь = vmail
}
служебный словарь {
# Если используется прокси-сервер dict, почтовые процессы должны иметь доступ к его сокету.
# Например: mode=0660, group=vmail и global mail_access_groups=vmail
unix_listener дикт {
#режим = 0600
#пользователь =
#группа =
}
}
##
## Настройки SSL
##
SSL = требуется
ssl_cert = </etc/ssl/certs/mailtls-selfsigned.crt
ssl_key = </etc/ssl/private/mailtls-selfsigned.key
ssl_client_ca_dir = /etc/ssl/сертификаты
ssl_dh = </usr/share/dovecot/dh.pem
##
## Специальные настройки LDA (также используемые LMTP)
##
протокол lda {
}
##
## Определения почтовых ящиков
##
почтовый ящик пространства имен {
# Эти почтовые ящики широко используются и, возможно, могут быть созданы автоматически:
почтовый ящик Черновики {
special_use = \ Черновики
}
почтовый ящик Нежелательная {
special_use = \ Мусор
}
почтовый ящик Корзина {
special_use = \Корзина
}
# Для почтовых ящиков \Sent есть два широко используемых имени. Мы отметим оба
# их как \Sent. Пользователь обычно удаляет один из них, если создаются дубликаты.
почтовый ящик отправлено {
special_use = \Отправлено
}
почтовый ящик "Отправленные сообщения" {
special_use = \Отправлено
}
}
##
## Специальные настройки IMAP
##
протокол имап {
}
##
## Специальные настройки LMTP
##
протокол lmtp {
# Аутентификация через серверную часть dict. Включено из 10-auth.conf.
#
# <doc/wiki/AuthDatabase.Dict.txt>
БД {
водитель = дикт
args = /etc/dovecot/dovecot-dict-auth.conf.ext
}
пользовательская база данных {
водитель = дикт
args = /etc/dovecot/dovecot-dict-auth.conf.ext
}
# Аутентификация для пользователей системы. Включено из 10-auth.conf.
БД {
драйвер = sql
аргументы = /etc/dovecot/dovecot-sql.conf.ext
}
пользовательская база данных {
драйвер = статический
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}