รุ่น: 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/log/mail.info:
6 ก.พ. 13:30:52 น. mail dovecot: imap-login: เข้าสู่ระบบ: user=<admin@domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=9717, secured, session= <WKMOr13Xss5/AAAB>
6 ก.พ. 13:30:52 น. mail dovecot: imap(admin@domain.com)<9717><WKMOr13Xss5/AAAB>: ออกจากระบบใน=82 out=756 ลบ=0 expunged=0 ถังขยะ=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
6 ก.พ. 13:30:52 น. mail dovecot: imap-login: เข้าสู่ระบบ: user=<admin@domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=9719, secured, session= <ZuEPr13Xts5/AAAB>
6 ก.พ. 13:30:52 น. mail dovecot: imap(admin@domain.com)<9719><ZuEPr13Xts5/AAAB>: ออกจากระบบใน=44 out=739 ลบ=0 expunged=0 ถังขยะ=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
6 ก.พ. 13:30:56 น. mail dovecot: imap-login: เข้าสู่ระบบ: user=<admin@domain.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=9723, secured, session= <cedKr13XuM5/AAAB>
6 ก.พ. 13:30:56 น. mail dovecot: imap(admin@domain.com)<9723><cedKr13XuM5/AAAB>: ออกจากระบบใน=44 out=739 ลบ=0 expunged=0 ถังขยะ=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
/var/log/roundcube/error.log มันว่างเปล่า.
ฉันค่อนข้างแน่ใจว่ามีบางอย่างกับ IMAP บน dovecot เนื่องจากการเข้าสู่ระบบใช้งานได้ แต่การดึงอีเมลใช้งานได้ประมาณ 10% ของเวลาเท่านั้น หากไม่มีบันทึกข้อผิดพลาดให้แก้ไข ฉันไม่รู้ว่าจะไปที่ไหนนอกจากการลองผิดลองถูกกับไฟล์ปรับแต่ง
ใครสามารถช่วยได้บ้าง?
.
ฉันได้ยกเว้นการกำหนดค่าจำนวนมากเนื่องจากมีขนาดใหญ่มาก ฉันสามารถเพิ่มไฟล์ conf เพิ่มเติมได้ แต่ฉันคิดว่าไฟล์เหล่านี้มีความเกี่ยวข้องมากที่สุด
การกำหนดค่า 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;
}
?>
การกำหนดค่า Dovecot:
## ไฟล์การกำหนดค่า Dovecot
# เปิดใช้งานโปรโตคอลที่ติดตั้ง
!include_try /usr/share/dovecot/protocols.d/*.protocol
โปรโตคอล = imap pop3 lmtp
ฟัง = *
postmaster_address = postmaster ที่ aperturecorp.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
เชื่อมต่อ = โฮสต์ = 127.0.0.1 dbname = mailsrvdb ผู้ใช้ = รหัสผ่าน maildbuser = ผ่าน
default_pass_scheme = SHA512-CRYPT
password_query = เลือกอีเมลเป็นผู้ใช้ รหัสผ่านจาก virtual_users โดยที่อีเมล='%u';
##
## ขั้นตอนการพิสูจน์ตัวตน
##
ปิดการใช้งาน_plaintext_auth = ใช่
auth_mechanisms = เข้าสู่ระบบธรรมดา
!รวมถึง auth-system.conf.ext
##
## ตำแหน่งกล่องจดหมายและเนมสเปซ
##
mail_location = maildir:/var/mail/vhosts/%d/%n/
เนมสเปซกล่องจดหมาย {
กล่องจดหมาย = ใช่
}
mail_privileged_group = เมล
โปรโตคอล !indexer-worker {
}
บริการ imap เข้าสู่ระบบ {
inet_listener imap {
พอร์ต = 143
}
อิมเมจ inet_listener {
พอร์ต = 993
ssl = ใช่
}
}
บริการ pop3 เข้าสู่ระบบ {
inet_listener pop3 {
พอร์ต = 0
}
inet_listener pop3s {
พอร์ต = 995
ssl = ใช่
}
}
บริการส่งเข้าสู่ระบบ {
การส่ง inet_listener {
#พอร์ต = 587
}
}
บริการ lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
#mode = 0666i
โหมด = 0600
ผู้ใช้ = postfix
กลุ่ม = postfix
}
}
บริการ imap {
# หน่วยความจำส่วนใหญ่ไปที่ไฟล์ mmap()ing คุณอาจต้องเพิ่มสิ่งนี้
# จำกัด หากคุณมีกล่องจดหมายขนาดใหญ่
#vsz_limit = $default_vsz_limit
#สูงสุด จำนวนของกระบวนการ IMAP (การเชื่อมต่อ)
#process_limit = 1024
}
บริการ pop3 {
#สูงสุด จำนวนของกระบวนการ POP3 (การเชื่อมต่อ)
#process_limit = 1024
}
การส่งบริการ {
#สูงสุด จำนวนของกระบวนการส่ง SMTP (การเชื่อมต่อ)
#process_limit = 1024
}
บริการตรวจสอบสิทธิ์ {
unix_listener /var/spool/postfix/private/auth {
โหมด = 0660
ผู้ใช้ = postfix
กลุ่ม = postfix
}
unix_listener รับรองความถูกต้อง userdb {
โหมด = 0600
ผู้ใช้ = vmail
}
ผู้ใช้ = โดฟคอต
}
พนักงานบริการตรวจสอบสิทธิ์ {
# กระบวนการของ Auth worker ถูกเรียกใช้โดยค่าเริ่มต้นเพื่อให้สามารถเข้าถึงได้
# /etc/shadow. หากไม่จำเป็น ควรเปลี่ยนผู้ใช้เป็น
# $default_internal_user.
ผู้ใช้ = vmail
}
คำสั่งบริการ {
# หากใช้ dict proxy กระบวนการเมลควรมีสิทธิ์เข้าถึงซ็อกเก็ต
# ตัวอย่างเช่น: mode=0660, group=vmail และ global mail_access_groups=vmail
คำสั่งยูนิกซ์_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/certs
ssl_dh = </usr/share/dovecot/dh.pem
##
## การตั้งค่าเฉพาะของ LDA (ใช้โดย LMTP ด้วย)
##
โปรโตคอล lda {
}
##
## คำจำกัดความของกล่องจดหมาย
##
เนมสเปซกล่องจดหมาย {
# กล่องจดหมายเหล่านี้ใช้กันอย่างแพร่หลายและอาจสร้างขึ้นโดยอัตโนมัติ:
กล่องจดหมายแบบร่าง {
special_use = \ฉบับร่าง
}
กล่องจดหมายขยะ {
special_use = \ขยะ
}
ถังขยะกล่องจดหมาย {
special_use = \ถังขยะ
}
# สำหรับกล่องจดหมาย \Sent มีสองชื่อที่ใช้กันอย่างแพร่หลาย เราจะทำเครื่องหมายทั้งสองอย่าง
# พวกเขาเป็น \Sent โดยทั่วไปแล้วผู้ใช้จะลบหนึ่งในนั้นหากมีการสร้างรายการที่ซ้ำกัน
กล่องจดหมายที่ส่ง {
special_use = \ส่ง
}
กล่องจดหมาย "ข้อความที่ส่ง" {
special_use = \ส่ง
}
}
##
## การตั้งค่าเฉพาะ IMAP
##
โปรโตคอล imap {
}
##
## การตั้งค่าเฉพาะ LMTP
##
โปรโตคอล lmtp {
# การรับรองความถูกต้องผ่านแบ็กเอนด์ dict รวมจาก 10-auth.conf
#
# <doc/wiki/AuthDatabase.Dict.txt>
รหัสผ่าน {
คนขับรถ = dict
args = /etc/dovecot/dovecot-dict-auth.conf.ext
}
userdb {
คนขับรถ = dict
args = /etc/dovecot/dovecot-dict-auth.conf.ext
}
# การรับรองความถูกต้องสำหรับผู้ใช้ระบบ รวมจาก 10-auth.conf
รหัสผ่าน {
ไดรเวอร์ = ตร.ม
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
ไดรเวอร์ = คงที่
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}