Score:1

MDA ท่อแตกด้วย fetchmail / dovecot

ธง us

ฉันได้ตั้งค่าเซิร์ฟเวอร์อีเมลที่บ้านด้วย dovecot เพื่อดาวน์โหลดและเก็บถาวรอีเมลจากบัญชีเว็บเมลหลายบัญชีผ่าน IMAP เป้าหมายคือการทำเช่นนี้โดยอัตโนมัติทุกสัปดาห์ด้วยงาน cron

ฉันไม่แน่ใจว่าฉันควรใช้ dovecot sync/backup หรือ fetchmail แต่อันหลังเป็นที่นิยม ฉันลองใช้ fetchmail ก่อน อย่างไรก็ตาม ดูเหมือนจะไม่ทำงาน ฉันได้รับสิ่งนี้:

user@mail:~$ fetchmail
38081 ข้อความสำหรับ [email protected] ที่ imap.fastmail.com (โฟลเดอร์เก็บถาวร)
fetchmail: เกิดข้อผิดพลาดในการเขียนไปยัง MDA: ไปป์เสีย
กำลังอ่านข้อความ [email protected]@imap.fastmail.com:1 จาก 38081 (ออคเต็ตส่วนหัว 2,100 รายการ) (ออคเต็ตเนื้อหา 726 รายการ) ไม่ได้ล้างข้อมูล
กำลังอ่านข้อความ [email protected]@imap.fastmail.com:2 จาก 38081 (ออคเต็ตส่วนหัว 4404) (ออคเต็ตเนื้อหา 6082)fetchmail: เกิดข้อผิดพลาดในการเขียนข้อความ
fetchmail: ข้อผิดพลาด MDA ขณะดึงข้อมูลจาก [email protected]@imap.fastmail.com
fetchmail: สถานะการค้นหา = 6 (IOERR)

~/.fetchmailrc มีลักษณะดังนี้:

โพลล์ imap.fastmail.com โปรโตคอล IMAP
     ผู้ใช้ "[email protected]" คือ "user@localhost" ที่นี่
     โฟลเดอร์เก็บถาวร
     ssl ดึงข้อมูล
     mda "/usr/lib/dovecot/deliver -d user@localhost -m .fastmail.Archive"

โฟลเดอร์ .fastmail.Archive อยู่ที่รูทของ ~/Maildir ฉันใช้ Maildir ในการกำหนดค่า dovecot

ใน ~/.netrc ฉันมีดังต่อไปนี้:

เครื่อง imap.fastmail.com
เข้าสู่ระบบ [email protected]
รหัสผ่าน <ความลับ>

ฉันยังเรียกใช้การส่งมอบด้วยตนเองโดยใช้ strace ในฐานะรูท และฉันไม่ได้รับข้อความใด ๆ ที่ส่งมาเมื่อฉันตรวจสอบ ~/Maildir ของฉันหลังจากนั้น นี่คือผลลัพธ์ ไม่แน่ใจว่าจะทำอย่างไร

root@mail:/home/user/fastmail# strace /usr/lib/dovecot/deliver -d user@localhost < 'test.eml'
execve("/usr/lib/dovecot/deliver", ["/usr/lib/dovecot/deliver", "-d", "user@localhost"], 0x7ffcd6f61be0 /* 12 vars */) = 0
brk(โมฆะ) = 0x5593bc6d8000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
openat(AT_FDCWD, "/usr/lib/dovecot/tls/x86_64/x86_64/libdovecot-lda.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
stat("/usr/lib/dovecot/tls/x86_64/x86_64", 0x7fffbb1506b0) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
openat(AT_FDCWD, "/usr/lib/dovecot/tls/x86_64/libdovecot-lda.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
stat("/usr/lib/dovecot/tls/x86_64", 0x7fffbb1506b0) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
openat(AT_FDCWD, "/usr/lib/dovecot/tls/x86_64/libdovecot-lda.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
stat("/usr/lib/dovecot/tls/x86_64", 0x7fffbb1506b0) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
openat(AT_FDCWD, "/usr/lib/dovecot/tls/libdovecot-lda.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
stat("/usr/lib/dovecot/tls", 0x7fffbb1506b0) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
openat(AT_FDCWD, "/usr/lib/dovecot/x86_64/x86_64/libdovecot-lda.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
stat("/usr/lib/dovecot/x86_64/x86_64", 0x7fffbb1506b0) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
openat(AT_FDCWD, "/usr/lib/dovecot/x86_64/libdovecot-lda.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
stat("/usr/lib/dovecot/x86_64", 0x7fffbb1506b0) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
openat(AT_FDCWD, "/usr/lib/dovecot/x86_64/libdovecot-lda.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
stat("/usr/lib/dovecot/x86_64", 0x7fffbb1506b0) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
openat(AT_FDCWD, "/usr/lib/dovecot/libdovecot-lda.so.0", O_RDONLY|O_CLOEXEC) = 3
อ่าน (3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3206\0 \0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=34968, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f99e4722000
mmap(โมฆะ, 37136, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f99e4718000
mmap(0x7f99e471b000, 12288, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f99e471b000
mmap(0x7f99e471e000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f99e471e000
mmap(0x7f99e4720000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7f99e4720000
ปิด (3) = 0
openat(AT_FDCWD, "/usr/lib/dovecot/libdovecot-storage.so.0", O_RDONLY|O_CLOEXEC) = 3
อ่าน (3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\332\3 \0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=1436376, ...}) = 0
mmap(โมฆะ, 1439128, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f99e45b8000
mprotect(0x7f99e45ee000, 1167360, PROT_NONE) = 0
mmap(0x7f99e45ee000, 856064, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x36000) = 0x7f99e45ee000
mmap(0x7f99e46bf000, 307200, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x107000) = 0x7f99e46bf000
mmap(0x7f99e470b000, 53248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x152000) = 0x7f99e470b000
ปิด (3) = 0
openat(AT_FDCWD, "/usr/lib/dovecot/libdovecot.so.0", O_RDONLY|O_CLOEXEC) = 3
อ่าน (3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\337 \3\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=1619272, ...}) = 0
mmap(โมฆะ, 1632856, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f99e4429000
mmap(0x7f99e4460000, 909312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x37000) = 0x7f99e4460000
mmap(0x7f99e453e000, 450560, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x115000) = 0x7f99e453e000
mmap(0x7f99e45ac000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x182000) = 0x7f99e45ac000
mmap(0x7f99e45b5000, 10840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f99e45b5000
ปิด (3) = 0
openat(AT_FDCWD, "/usr/lib/dovecot/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=35918, ...}) = 0
mmap(โมฆะ, 35918, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f99e4420000
ปิด (3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
อ่าน (3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260A\2 \0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1824496, ...}) = 0
mmap(โมฆะ, 1837056, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f99e425f000
mprotect(0x7f99e4281000, 1658880, PROT_NONE) = 0
mmap(0x7f99e4281000, 1343488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f99e4281000
mmap(0x7f99e43c9000, 311296, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16a000) = 0x7f99e43c9000
mmap(0x7f99e4416000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b6000) = 0x7f99e4416000
mmap(0x7f99e441c000, 14336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f99e441c000
ปิด (3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
อ่าน (3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\21\0 \0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14592, ...}) = 0
mmap(โมฆะ, 16656, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f99e425a000
mmap(0x7f99e425b000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f99e425b000
mmap(0x7f99e425c000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f99e425c000
mmap(0x7f99e425d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f99e425d000
ปิด (3) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f99e4258000
arch_prctl(ARCH_SET_FS, 0x7f99e4259000) = 0
mprotect(0x7f99e4416000, 16384, PROT_READ) = 0
mprotect(0x7f99e425d000, 4096, PROT_READ) = 0
mprotect(0x7f99e45ac000, 32768, PROT_READ) = 0
mprotect(0x7f99e470b000, 28672, PROT_READ) = 0
mprotect(0x7f99e4720000, 4096, PROT_READ) = 0
mprotect(0x5593baf97000, 4096, PROT_READ) = 0
mprotect(0x7f99e474b000, 4096, PROT_READ) = 0
munmap(0x7f99e4420000, 35918) = 0
getuid() = 0
geteuid() = 0
สุ่ม ("\x1c\x75\x34\x6d", 4, 0) = 4
brk(โมฆะ) = 0x5593bc6d8000
brk(0x5593bc6f9000) = 0x5593bc6f9000
uname({sysname="Linux", nodename="mail", ...}) = 0
getpid() = 7234
openat(AT_FDCWD, "/dev/null", O_WRONLY) = 3
fcntl(3, F_GETFD) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f99e4296840}, NULL, 8) = 0
rt_sigaction(SIGALRM, {sa_handler=0x7f99e4520210, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f99e4296840}, NULL, 8) = 0
geteuid() = 0
rt_sigaction(SIGINT, {sa_handler=0x7f99e4520c20, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f99e4296840}, NULL, 8) = 0
ไปป์([4, 5]) = 0
fcntl(4, F_GETFL) = 0 (แฟล็ก O_RDONLY)
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
fcntl(5, F_GETFL) = 0x1 (แฟล็ก O_WRONLY)
fcntl(5, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fcntl(5, F_GETFD) = 0
fcntl(5, F_SETFD, FD_CLOEXEC) = 0
epoll_create(128) = 6
fcntl(6, F_GETFD) = 0
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
epoll_ctl(6, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161333872, u64=94093009887344}}) = 0
rt_sigaction(SIGTERM, {sa_handler=0x7f99e4520c20, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f99e4296840}, NULL, 8) = 0
อูมาสก์(077) = 022
ซ็อกเก็ต (AF_UNIX, SOCK_STREAM, 0) = 7
fcntl(7, F_GETFL) = 0x2 (แฟล็ก O_RDWR)
fcntl(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
เชื่อมต่อ (7, {sa_family=AF_UNIX, sun_path="/var/run/dovecot/config"}, 110) = 0
fcntl(7, F_GETFL) = 0x802 (แฟล็ก O_RDWR|O_NONBLOCK)
fcntl(7, F_SETFL, O_RDWR) = 0
เขียน (7, "VERSION\tconfig\t2\t0\nREQ\tmodule=ld"..., 70) = 70
fstat(7, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
fcntl(7, F_GETFL) = 0x2 (แฟล็ก O_RDWR)
สัญญาณเตือน (10) = 0
อ่าน (7, "\nmail_privileged_group=mail\nname"..., 8192) = 810
สัญญาณเตือน (0) = 10
ปิด (7) = 0
stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=174, ...}) = 0
openat(AT_FDCWD, "/etc/host.conf", O_RDONLY|O_CLOEXEC) = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=9, ...}) = 0
อ่าน (7, "มัลติออน\n", 4096) = 9
อ่าน (7, "", 4096) = 0
ปิด (7) = 0
openat(AT_FDCWD, "/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=174, ...}) = 0
อ่าน (7, "# Dynamic resolv.conf (5) ไฟล์สำหรับ"..., 4096) = 174
อ่าน (7, "", 4096) = 0
ปิด (7) = 0
uname({sysname="Linux", nodename="mail", ...}) = 0
ซ็อกเก็ต(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7
connect(7, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
ปิด (7) = 0
ซ็อกเก็ต(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 7
connect(7, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
ปิด (7) = 0
openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=526, ...}) = 0
อ่าน (7, "# /etc/nsswitch.conf\n#\n# ตัวอย่าง"..., 4096) = 526
อ่าน (7, "", 4096) = 0
ปิด (7) = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=35918, ...}) = 0
mmap(โมฆะ, 35918, PROT_READ, MAP_PRIVATE, 7, 0) = 0x7f99e4420000
ปิด (7) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 7
อ่าน (7, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0003\0 \0\0\0\0\0"..., 832) = 832
fstat(7, {st_mode=S_IFREG|0644, st_size=55792, ...}) = 0
mmap(โมฆะ, 83768, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 7, 0) = 0x7f99e4243000
mprotect(0x7f99e4246000, 40960, PROT_NONE) = 0
mmap(0x7f99e4246000, 28672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 7, 0x3000) = 0x7f99e4246000
mmap(0x7f99e424d000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 7, 0xa000) = 0x7f99e424d000
mmap(0x7f99e4250000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 7, 0xc000) = 0x7f99e4250000
mmap(0x7f99e4252000, 22328, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f99e4252000
ปิด (7) = 0
mprotect(0x7f99e4250000, 4096, PROT_READ) = 0
munmap(0x7f99e4420000, 35918) = 0
openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_CLOEXEC) = 7
lseek(7, 0, SEEK_CUR) = 0
fstat(7, {st_mode=S_IFREG|0644, st_size=210, ...}) = 0
อ่าน (7, "127.0.0.1\tlocalhost\n192.168.1.24"..., 4096) = 210
lseek(7, 0, SEEK_CUR) = 210
อ่าน (7, "", 4096) = 0
ปิด (7) = 0
การเข้าถึง ("/etc/ssl/certs", X_OK) = 0
ซ็อกเก็ต (AF_UNIX, SOCK_STREAM, 0) = 7
fcntl(7, F_GETFL) = 0x2 (แฟล็ก O_RDWR)
fcntl(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
เชื่อมต่อ (7, {sa_family=AF_UNIX, sun_path="/var/run/dovecot/stats-writer"}, 110) = 0
fstat(7, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
fcntl(7, F_GETFL) = 0x802 (แฟล็ก O_RDWR|O_NONBLOCK)
epoll_ctl(6, EPOLL_CTL_ADD, 7, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161385712, u64=94093009939184}}) = 0
เขียน (7, "เวอร์ชัน\tstats-client\t3\t0\n", 25) = 25
epoll_ctl(6, EPOLL_CTL_DEL, 4, 0x7fffbb150b0c) = 0
epoll_create(128) = 8
fcntl(8, F_GETFD) = 0
fcntl(8, F_SETFD, FD_CLOEXEC) = 0
epoll_ctl(8, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161395728, u64=94093009949200}}) = 0
epoll_ctl(8, EPOLL_CTL_ADD, 7, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161395856, u64=94093009949328}}) = 0
epoll_ctl(6, EPOLL_CTL_DEL, 7, 0x7fffbb150b1c) = 0
epoll_wait(8, [{EPOLLIN, {u32=3161395856, u64=94093009949328}}], 2, -1) = 1
อ่าน (7, "เวอร์ชัน\tstats-เซิร์ฟเวอร์\t3\t0\nตัวกรอง\t"..., 8192) = 33
epoll_ctl(8, EPOLL_CTL_DEL, 4, 0x7fffbb150b2c) = 0
epoll_ctl(6, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161333872, u64=94093009887344}}) = 0
epoll_ctl(6, EPOLL_CTL_ADD, 7, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161385712, u64=94093009939184}}) = 0
epoll_ctl(8, EPOLL_CTL_DEL, 7, 0x7fffbb150b1c) = 0
epoll_ctl(6, EPOLL_CTL_DEL, 4, 0x7fffbb150b2c) = 0
epoll_ctl(8, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161395728, u64=94093009949200}}) = 0
epoll_ctl(8, EPOLL_CTL_DEL, 4, 0x7fffbb150aec) = 0
epoll_ctl(6, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161333872, u64=94093009887344}}) = 0
ปิด (8) = 0
ซ็อกเก็ต(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 8
เชื่อมต่อ (8, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = 0
ซ็อกเก็ต (AF_UNIX, SOCK_STREAM, 0) = 9
fcntl(9, F_GETFL) = 0x2 (แฟล็ก O_RDWR)
fcntl(9, F_SETFL, O_RDWR|O_NONBLOCK) = 0
เชื่อมต่อ (9, {sa_family=AF_UNIX, sun_path="/var/run/dovecot/auth-userdb"}, 110) = 0
epoll_ctl(6, EPOLL_CTL_DEL, 4, 0x7fffbb150d5c) = 0
epoll_create(128) = 10
fcntl(10, F_GETFD) = 0
fcntl(10, F_SETFD, FD_CLOEXEC) = 0
epoll_ctl(10, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161405440, u64=94093009958912}}) = 0
fstat(9, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
fcntl(9, F_GETFL) = 0x802 (แฟล็ก O_RDWR|O_NONBLOCK)
lseek(9, 0, SEEK_CUR) = -1 ESPIPE (การค้นหาที่ผิดกฎหมาย)
getsockname(9, {sa_family=AF_UNIX}, [28->2]) = 0
epoll_ctl(10, EPOLL_CTL_ADD, 9, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161406112, u64=94093009959584}}) = 0
setsockopt(9, SOL_TCP, TCP_CORK, [1], 4) = -1 EOPNOTSUPP (ไม่รองรับการทำงาน)
เขียน (9, "เวอร์ชัน\t1\t0\nUSER\t1\tuser@loca"..., 50) = 50
epoll_wait(10, [{EPOLLIN, {u32=3161406112, u64=94093009959584}}], 2, 155000) = 1
อ่าน (9, "เวอร์ชัน\t1\t1\nSPID\t7235\n", 8192) = 22
epoll_wait(10, [{EPOLLIN, {u32=3161406112, u64=94093009959584}}], 2, 154984) = 1
อ่าน(9, "ไม่พบ\t1\n", 8170) = 11
epoll_ctl(10, EPOLL_CTL_DEL, 4, 0x7fffbb150c7c) = 0
epoll_ctl(6, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161333872, u64=94093009887344}}) = 0
epoll_ctl(6, EPOLL_CTL_DEL, 4, 0x7fffbb150c7c) = 0
epoll_ctl(10, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161405440, u64=94093009958912}}) = 0
epoll_ctl(10, EPOLL_CTL_DEL, 4, 0x7fffbb150d8c) = 0
epoll_ctl(6, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161333872, u64=94093009887344}}) = 0
epoll_ctl(6, EPOLL_CTL_DEL, 4, 0x7fffbb150d8c) = 0
epoll_ctl(10, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161405440, u64=94093009958912}}) = 0
epoll_ctl(10, EPOLL_CTL_DEL, 9, 0x7fffbb150dbc) = 0
epoll_ctl(10, EPOLL_CTL_DEL, 4, 0x7fffbb150d4c) = 0
epoll_ctl(6, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=3161333872, u64=94093009887344}}) = 0
ปิด (10) = 0
ปิด (9) = 0
epoll_ctl(6, EPOLL_CTL_DEL, 7, 0x7fffbb15105c) = 0
ปิด (7) = 0
epoll_ctl(6, EPOLL_CTL_DEL, 4, 0x7fffbb15105c) = 0
ปิด (4) = 0
ปิด (5) = 0
ปิด (6) = 0
ปิด (3) = 0
exit_group(67) = ?
+++ ออกด้วย 67 +++

ผลลัพธ์ของ doveconf -n:

root@mail:/etc/dovecot# dovecot -n
# 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
# Pigeonhole รุ่น 0.5.4 ()
# ระบบปฏิบัติการ: Linux 4.19.0-17-amd64 x86_64 Debian 10.10
# ชื่อโฮสต์: mail
mail_location = maildir:~/เมลเดียร์
mail_privileged_group = เมล
เนมสเปซกล่องจดหมาย {
  กล่องจดหมาย = ใช่
  ที่ตั้ง =
  กล่องจดหมายที่เก็บถาวร {
    special_use = \เก็บถาวร
  }
  กล่องจดหมายแบบร่าง {
    special_use = \ฉบับร่าง
  }
  กล่องจดหมายขยะ {
    special_use = \ขยะ
  }
  กล่องจดหมายที่ส่ง {
    special_use = \ส่ง
  }
  กล่องจดหมาย "ข้อความที่ส่ง" {
    special_use = \ส่ง
  }
  ถังขยะกล่องจดหมาย {
    special_use = \ถังขยะ
  }
  คำนำหน้า =
}
รหัสผ่าน {
  คนขับรถ = แพม
}
โปรโตคอล = " imap"
ssl = จำเป็น
ssl_cert = </etc/letsencrypt/live/domain.com/fullchain.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # ซ่อน ใช้ -P เพื่อแสดง
ssl_key = # ซ่อน ใช้ -P เพื่อแสดง
userdb {
  ไดรเวอร์ = รหัสผ่าน wd
}

สิทธิ์ของ /var/run/dovecot/สถิติ

root@mail:/etc/dovecot# ls -l /var/run/dovecot/*stat*
srw ------- 1 รูทรูท 0 9 ส.ค. 13:37 /var/run/dovecot/old-stats
prw ------- 1 รูทรูท 0 9 ส.ค. 13:37 /var/run/dovecot/old-stats-mail
prw ------- 1 รูทรูท 0 9 ส.ค. 13:37 /var/run/dovecot/old-stats-user
srw ------- 1 รูทรูท 0 9 ส.ค. 13:37 /var/run/dovecot/stats-reader
srw-rw---- 1 รูท dovecot 0 9 ส.ค. 13:37 /var/run/dovecot/stats-writer

มีแนวคิดใดบ้างที่อาจผิดพลาด และจะดีกว่าไหมถ้าใช้ dovecot sync/backup สำหรับสิ่งนี้

anx avatar
fr flag
anx
โปรดลองไพพ์ข้อความไปที่ 'deliver' แยกต่างหาก ฉันสงสัยว่าข้อความนั้นจะแสดงข้อความแสดงข้อผิดพลาดที่คุณไม่เห็นเมื่อเรียกผ่าน fetchmail เช่น. `deliver` เรียกว่าผู้ใช้ที่เป็นเจ้าของ Maildir หรือไม่ (นอกจากนี้ `fetchall` ซ้ำๆ ยังฟังดูแปลกๆ หากคุณต้องการใช้ฟีเจอร์ที่ Dovecot มีให้จริงๆ)
us flag
@anx ความคิดดั้งเดิมของฉันคือการใช้ dsync (https://wiki2.dovecot.org/Migration/Dsync) แต่เมื่อฉันอ่านเพิ่มเติม (https://wiki.dovecot.org/Tools/Doveadm/Sync) ดูเหมือนว่า เหมือนไม่เหมาะกับสถานการณ์การใช้งานของฉัน - ฉันต้องการดาวน์โหลดอีเมลและลบสำเนาออกจากเซิร์ฟเวอร์ ฉันไม่ต้องการให้โฟลเดอร์ IMAP ในเครื่องของฉันซิงค์กับโฟลเดอร์บนเซิร์ฟเวอร์ IMAP ระยะไกล ฉันต้องการให้แน่ใจว่าฉันเก็บสำเนาในเครื่องทั้งหมดไว้ แม้ว่าจะถูกลบออกจากเซิร์ฟเวอร์ระยะไกลแล้วก็ตาม ดูเหมือนว่า fetchmail คือสิ่งที่ฉันต้องการ? ฉันไพพ์ข้อความไปยังการส่งมอบและไม่พบข้อผิดพลาดใดๆ แต่มันไม่ทำงาน
anx avatar
fr flag
anx
คุณใช้แฟล็ก `-e` เพื่อ *พิมพ์* ข้อผิดพลาด แทนที่จะส่งการแจ้งเตือน "ตีกลับ" หรือไม่ ฉันเชื่อว่าคุณควรมีบางอย่างในบันทึกของคุณ
us flag
@anx ฉันไม่มี /var/log/dovecot.log ฉันเดาว่าการบันทึกทั้งหมดเสร็จสิ้นใน /var/log/syslog เป็นต้นฉันควรตรวจสอบอีกครั้งในการกำหนดค่า dovecot ที่ใดที่หนึ่งหากเปิดใช้งานการบันทึกทั้งหมดหรือไม่ ฉันจะใช้แฟล็ก -e และรายงานกลับ
us flag
@anx การเพิ่ม -e ไม่มีความแตกต่าง ฉันไม่ได้รับเอาต์พุตข้อผิดพลาดใด ๆ ในบรรทัดคำสั่ง
Alien Life Form avatar
ru flag
กำลังพยายามถอดรหัส strace(1) (ยุ่งยาก) ฉันว่ามันกำลังพยายามบอกคุณว่าไม่พบ user@localhost ถ้าใช่ แสดงว่าไม่รู้จัก 'user', localhost หรือ 'user@localhost'
Score:1
ธง us

ปรากฎว่าสาย

     mda "/usr/lib/dovecot/deliver -d user@localhost -m .fastmail.Archive"

ไม่ทำงาน เมื่อฉันลบ @localhost และแก้ไขชื่อโฟลเดอร์ มันใช้งานได้:

     mda "/usr/lib/dovecot/deliver -d ผู้ใช้ -m fastmail.Archive"

สิ่งที่ฉันยังไม่เข้าใจคือเหตุใดฉันจึงไม่ได้รับเอาต์พุตข้อผิดพลาดใดๆ คำสั่งก็ทำหน้าที่เหมือนใช้งานได้ และฉันก็ไม่เห็นสิ่งใดในบันทึกของ dovecot เช่นกัน อย่างน้อยก็ไม่ต้องเปิดใช้ตัวเลือกการบันทึกการแก้ไขจุดบกพร่อง ข้อผิดพลาดในการค้นหาข้างต้นในเอาต์พุตของ strace ทำให้เกิดความสับสน ฉันไม่เข้าใจว่าความสัมพันธ์ระหว่างสิ่งนั้นคืออะไรกับการลบ @localhost เพื่อแก้ไขปัญหา

anx avatar
fr flag
anx
fetchmail ไม่สามารถส่งจดหมายโดยตรงไปยังซ็อกเก็ต LMTP ของ dovecot ได้หรือไม่ โดยปกติคุณจะได้รับข้อเสนอแนะ (ข้อผิดพลาด) ที่เป็นประโยชน์มากขึ้นเมื่อคุณใช้โปรโตคอลแบบเต็มแทนที่จะใช้ไพพ์แบบธรรมดาไปยังไบนารี lda

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา