Versiuni: 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,now 1:2.3.13+dfsg1-2
Am configurația postfix/dovecot care funcționează pentru a primi e-mailuri. După ce am trecut de la rainloop la roundcube, nu pot vedea e-mailuri primite în roundcube web. Dar ocazional mă voi autentifica la roundcube și îmi voi vedea toate e-mailurile în căsuța de e-mail, dar dacă dau clic pe ceva sau reîmprospătează pagina, toate dispar. Trimiterea de e-mailuri de la roundcube are ca rezultat, de asemenea, o roată de încărcare fără sfârșit, fără timeout.
Din păcate, roundcube nu are jurnale de eroare, iar dovecot are doar jurnalele de conectare reușite. Nimic care să indice că ceva este stricat; altele decât e-mailurile care dispar.
/var/log/mail.info:
6 februarie 13:30:52 mail dovecot: imap-login: Login: user=<admin@domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=9717, secured, session= <WKMOr13Xss5/AAAB>
6 februarie 13:30:52 mail dovecot: imap(admin@domain.com)<9717><WKMOr13Xss5/AAAB>: Deconectat=82 deconectat=756 deleted=0 expunged=0 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
6 februarie 13:30:52 mail dovecot: imap-login: Login: user=<admin@domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=9719, secured, session= <ZuEPr13Xts5/AAAB>
6 februarie 13:30:52 mail dovecot: imap(admin@domain.com)<9719><ZuEPr13Xts5/AAAB>: Deconectat=44 out=739 deleted=0 expunged=0 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
6 februarie 13:30:56 mail dovecot: imap-login: Login: user=<admin@domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=9723, secured, session= <cedKr13XuM5/AAAB>
6 februarie 13:30:56 mail dovecot: imap(admin@domain.com)<9723><cedKr13XuM5/AAAB>: Deconectat=44 out=739 deleted=0 expunged=0 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
/var/log/roundcube/error.log este gol.
Sunt destul de sigur că este ceva cu IMAP pe dovecot, deoarece autentificarea funcționează, dar preluarea e-mailurilor funcționează doar aproximativ 10% din timp. Fără jurnalele de erori de depanat, nu știu unde să merg de aici, în afară de încercarea și eroarea încurcăturii cu fișierele de configurare.
Poate cineva te rog ajuta?
.
Am exclus o mulțime de configurații din cauza cât de masive sunt. Pot adăuga orice fișiere de conf suplimentare, dar am crezut că acestea sunt cele mai relevante.
Configurație Roundcube:
<?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;
}
?>
Configurație Dovecot:
## Fișierul de configurare Dovecot
# Activați protocoalele instalate
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocoale = imap pop3 lmtp
asculta = *
postmaster_address = postmaster la aperturecorp.net
##
## Setări server dicționar
##
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
# Acest fișier este accesat în mod obișnuit prin secțiunea passdb {} sau userdb {} în
# conf.d/auth-sql.conf.ext
driver = mysql
connect = host=127.0.0.1 dbname=mailsrvdb user=maildbuser parola=pass
default_pass_scheme = SHA512-CRYPT
password_query = SELECT e-mail ca utilizator, parola FROM virtual_users WHERE email='%u';
##
## Procese de autentificare
##
disable_plaintext_auth = da
auth_mechanisms = autentificare simplă
!include auth-system.conf.ext
##
## Locații și spații de nume ale cutiei poștale
##
mail_location = maildir:/var/mail/vhosts/%d/%n/
inbox spatiu de nume {
inbox = da
}
mail_privileged_group = mail
protocol !indexer-worker {
}
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imagini {
port = 993
ssl = da
}
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 995
ssl = da
}
}
serviciu submission-login {
transmitere inet_listener {
#port = 587
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
#mode = 0666i
mod = 0600
utilizator = postfix
grup = postfix
}
}
service imagine {
# Cea mai mare parte a memoriei merge în fișierele mmap()ing. Poate fi necesar să măriți acest lucru
# limită dacă aveți cutii poștale uriașe.
#vsz_limit = $default_vsz_limit
# Max. numărul de procese IMAP (conexiuni)
#process_limit = 1024
}
serviciu pop3 {
# Max. numărul de procese POP3 (conexiuni)
#process_limit = 1024
}
transmiterea serviciului {
# Max. numărul de procese de trimitere SMTP (conexiuni)
#process_limit = 1024
}
autentificare serviciu {
unix_listener /var/spool/postfix/private/auth {
mod = 0660
utilizator = postfix
grup = postfix
}
unix_listener auth-userdb {
mod = 0600
utilizator = vmail
}
utilizator = porumbel
}
service auth-worker {
# Procesul de lucru Auth worker este rulat implicit ca root, astfel încât să poată accesa
# /etc/shadow. Dacă acest lucru nu este necesar, utilizatorul ar trebui să fie schimbat la
# $default_internal_user.
utilizator = vmail
}
service dict {
# Dacă se folosește proxy dict, procesele de e-mail ar trebui să aibă acces la soclul său.
# De exemplu: mode=0660, group=vmail și global mail_access_groups=vmail
unix_listener dict {
#mode = 0600
#utilizator =
#grup =
}
}
##
## Setări SSL
##
ssl = necesar
ssl_cert = </etc/ssl/certs/mailtls-selfsigned.crt
ssl_key = </etc/ssl/private/mailtls-selfsigned.key
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = </usr/share/dovecot/dh.pem
##
## Setări specifice LDA (utilizate și de LMTP)
##
protocol lda {
}
##
## Definițiile cutiei poștale
##
inbox spatiu de nume {
# Aceste cutii poștale sunt utilizate pe scară largă și ar putea fi create automat:
cutie poștală Ciorne {
special_use = \Drafts
}
cutie poștală nedorită {
special_use = \Junk
}
cutie poștală gunoi {
special_use = \Trash
}
# Pentru cutiile poștale \Sent există două nume utilizate pe scară largă. Le vom marca pe amândouă
# ele ca \Sent. De obicei, utilizatorul șterge unul dintre ele dacă sunt create duplicate.
cutie poștală Trimis {
special_use = \Trimis
}
căsuța poștală „Mesaje trimise” {
special_use = \Trimis
}
}
##
## Setări specifice IMAP
##
protocol imap {
}
##
## Setări specifice LMTP
##
protocol lmtp {
# Autentificare prin backend dict. Inclus din 10-auth.conf.
#
# <doc/wiki/AuthDatabase.Dict.txt>
passdb {
driver = dict
args = /etc/dovecot/dovecot-dict-auth.conf.ext
}
userdb {
driver = dict
args = /etc/dovecot/dovecot-dict-auth.conf.ext
}
# Autentificare pentru utilizatorii sistemului. Inclus din 10-auth.conf.
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}