标签 dovecot 下的文章

roundcube - 收件箱列表为空 - the list is empty - imap - vsz_limit 256 MB

现象:某个邮箱用户登录到 roundcube webmail,收件箱列表是空的。原先的邮件数约有十万封。

实践:查看 dovecot 的 imap.log ,出现类似 (Out of memory (service imap { vsz_limit=256 MB }, you may need to increase it)) 的字样。按网上的例子,在 /etc/dovecot/dovecot.conf 添加如下内容后,重启 dovecot 服务即可。

service imap {
  vsz_limit = 1024MB
}

参考:https://forum.iredmail.org/topic11051-increasing-vszlimit.html

iredmail - 手动删除用户的默认目录 - 批量删除邮件

需求:邮件塞满了磁盘的inodes。无需备份,直接强制删除所有用户的邮件。

尝试:

#!/bin/bash

# 先停止postfix
/usr/bin/systemctl stop postfix

# 导出用户名单到文件
doveadm user *@* > /run/mailtmp.txt
# 从文件每行读取用户名,再根据用户名得到用户默认存储目录,如 /var/vmail/vmail1/example.com/z/z/9/zz9976-2023.04.19.20.47.38/ ,最后删除相应的目录
cat /run/mailtmp.txt | while read LINE; do
    su -s /bin/bash vmail -c "rm -rf `doveadm user -f home $LINE`"
done

/usr/bin/systemctl start postfix

参考:

为dovecot启用rawlog来调试

需求:安装iredmail后,想记录imap客户端的操作动作(如查看目录、搜索等)。

过程:

  1. 编辑/etc/dovecot/dovecot.conf配置文件,添加以下内容:

    service imap {
      executable = imap postlogin
    }
    service pop3 {
      executable = pop3 postlogin
    }
    
    service postlogin {
      executable = script-login -d rawlog
      unix_listener postlogin {
      }
    }
  2. 在iredmail邮局管理,新添加用户,如 liu@anqun.org
  3. 用如“雷鸟”邮件客户端以imap登录,目的是首次自动生成用户的完整默认目录
  4. 在服务器里运行如 doveadm user -u liu@anqun.org 的命令,得到默认用户目录路径,如 /var/vmail/vmail1/mkbo.com/l/i/u/liujia-2020.06.08.21.04.29
  5. 为用户创建 dovecot.rawlog 目录,如 var/vmail/vmail1/mkbo.com/l/i/u/liujia-2020.06.08.21.04.29/dovecot.rawlog 请注意该目录的权限,请参考同级目录的权限设置
  6. systemctl restart dovecot # 重启dovecot服务,以上新设置内容生效,之后 dovecot.rawlog 目录会自动生成.in 和.out文件,即是用户的动作记录内容

参考:https://wiki.dovecot.org/Debugging/Rawlog

登录邮箱失败 - dovecot - inbox=yes - namespace missing

环境:CentOS 6,邮局通过dovecot管理imap

过程:

1.用邮箱客户管理端,通过imap登录,失败

2.查看邮局的邮件日志,有错误信息:

Oct 10 14:47:31 1403-s17 dovecot: imap(a): Error: user april: Initialization failed: namespace configuration error: inbox=yes namespace missing
Oct 10 14:47:31 1403-s17 dovecot: imap(a): Error: Invalid user settings. Refer to server log for more information.

namespace-configuration-error-1.png

3.编辑配置文件 /etc/dovecot/conf.d/15-mailboxes.conf, 在 namespace inbox { } 的配置行中,添加一行 inbox = yes
namespace-configuration-error-2.png

4.保存后重启deovecot,测试邮箱用户登录正常
namespace-configuration-error-3.png

参考:https://forum.vestacp.com/viewtopic.php?t=13383