想要实现用户彻底删除邮件后仍然可以查找到邮件并且恢复,Dovecot存在一个机制供我们使用,那就是lazy-expunge,顾名思义,他实现了Lazy expunge功能,可以自动建立一个系统文件夹用来存储这个邮件,熟悉IMAP基本机制的同学应该可以猜到,其实就是针对彻底删除邮件的操作做了一次重新定向,将用户彻底删除的邮件move到这个系统文件夹内,而且这个文件夹可以通过配置进行隐藏,通过各种IMAPAPI都可以直接访问到这个文件夹里所有的邮件。

整体配置过程比较简单,本人是CentOS7的系统,dovecot默认位置文件在/etc/dovecot/dovecot.conf,并且我这边把所有配置都写在这个同一个文件中了,方便查看,不是推荐做法:

①在插件引用变量中加入这个插件lazy_expunge

mail_plugins = quota mailbox_alias acl mail_log notify stats lazy_expunge

②在插件的配置中加入如下配置lazy_expunge_only_last_instance = yes邮件在转移文件夹时会产生多次删除行为,有了这个配置就可以保证相同邮件仅回收一封。

plugin {#省略其他配置lazy_expunge = .EXPUNGEDlazy_expunge_only_last_instance = yes#省略其他配置
}

③用户默认隐藏文件夹、相关存储配置

# namespace for lazy_expunge plugin:
namespace {prefix = .EXPUNGED/hidden = nolist = yesseparator = /location = maildir:~/Maildir/expunged
}

在开发或者调试阶段可以把hidden设定 no,list 设定yes,这样可以在getfolder时得到这个“隐藏”文件夹,也可以通过邮件客户端看到这个文件夹里的内容。在上线后设定hidden为 yes list设定为no,这样用户就看不到这个隐藏文件夹了。

以上配置可以将彻底删除的邮件存储到.EXPUNGED文件夹中,需要注意的是此时无法直接获取用户什么时间存储进来的邮件,也无法获取到是从哪个文件夹彻底删除的邮件,如果想要获取这两个信息,后续会介绍如何借助插件输出IMAP操作日志,从而通过日志监控来获取有用的信息。

Dovecot 邮件假删除、回收站功能 (使用lazy-expunge插件)相关推荐

  1. linux smb共享删除恢复,给Samba添加回收站功能

    之前在使用windows服务器做文件共享时,如果客户端在共享文件夹里删除文件,那么将无法在服务器端找到已经删除的文件.如果在客户端有误删文件的情况,那么成功恢复文件的机率将非常小. 后来在网上查阅了一 ...

  2. 回收站功能在 Linux 中的实现

    本文仿照 Windows 回收站的功能,运用 Bash 脚本在 Linux 上做了实现,创建 delete 脚本代替 rm 命令对文件或目录进行删除操做.该脚本实现了以下功能:对大于 2G 的文件或目 ...

  3. java 实现回收站功能,回收站功能在 Linux 中的实现

    本文仿照 Windows 回收站的功能,运用 Bash 脚本在 Linux 上做了实现,创建 delete 脚本代替 rm 命令对文件或目录进行删除操做.该脚本实现了以下功能:对大于 2G 的文件或目 ...

  4. 在 Linux 终端中实现回收站功能

    本文仿照 Windows 回收站的功能,运用 Bash 脚本在 Linux 上实现.创建 delete 脚本代替 rm 命令对文件或目录进行删除操作. 该脚本实现了以下功能: 目录 1. Delete ...

  5. AD回收站功能的使用

    微软在Windows Server 2008 R2种引入Active Directory 回收站功能,可以恢复一些已删除的对象,但是没有丰富的图形界面增加了使用难度.在Windows Server 2 ...

  6. linux系统回收站功能的实现

    如何实现linux系统的回收站功能,对rm权限做限制,避免误删造成不可逆问题. 这就要靠环境变量去实现,首先需要了解环境变量的作用. /etc/profile,/etc/bashrc 是系统全局环境变 ...

  7. 为rm命令增加回收站功能

    为rm命令增加回收站功能 我的实验环境是ubuntu 14.04. 背景 用rm删除文件的同时会删除inode信息,这使得使用rm删除的文件很难恢复.特别是带有-rf参数时,一定要慎之又慎. 我希望用 ...

  8. Rafy 框架 - 幽灵插件(假删除)

    Rafy 框架又添新成员:幽灵插件.本文将解释该插件的场景.使用方法.原理. 场景 在开发各类数据库应用系统时,往往需要在删除数据时不是真正地删除数据,而只是把数据标识为'已删除'状态.这些数据在业务 ...

  9. MySQL单机版Recycle Bin回收站功能

    最近调研了阿里的Recycle Bin回收站功能,可以保证数据不丢失. 为了防止开发或运维人员的误操作,比如DROP TABLE/DATABASE.TRUNCATE TABLE,这类DDL语句不具有可 ...

  10. OpenWares | Open Source and Free Matters » 为rm命令增加回收站功能

    OpenWares | Open Source and Free Matters » 为rm命令增加回收站功能 为rm命令增加回收站功能 March 11th, 2011 openwares Leav ...

最新文章

  1. DevExpress Components16.2.6 Source Code 编译
  2. 除了工作怎么交朋友_《隐秘的角落》该如何看待孩子在学校交朋友?
  3. UVA 315 :Network (无向图求割顶)
  4. IDA Pro 数据库文件、函数窗口、结构体窗口
  5. How Do Annotations Work in Java?--转
  6. 从2018年12月起陆续将博客搬至博客园(cnblogs)
  7. mysql int(3)与int(11)的区别详解
  8. leetcode 移动零
  9. Pentium 4处理器架构/微架构/流水线 (2) - SSE2
  10. php修改mongo,php操作MongoDB基础教程(连接、新增、修改、删除、查询)
  11. RUNTIME_CLASS
  12. python中narc是什么意思_python中@是什么意思
  13. 初了解JS设计模式,学习笔记
  14. 计算机专业四次评估,教育部第四次学科评估:信息与通信工程一级学科排行,仅供参考...
  15. Android设备刷Device-owner说明
  16. 矩阵求导公式的推导和计算(公式推导法)
  17. Docker容器无法解析域名
  18. 苹果强制使用HTTPS传输后APP开发者必须知道的事
  19. Android 内部存储和外部存储
  20. 多功能万年历控件编程

热门文章

  1. 重装系统原来这么简单,最详细的win7安装教程
  2. Centos 7 制作Oracle 12c Docker Images
  3. 大数据日志分析系统-介绍
  4. SSM实现秒杀系统案例
  5. java 向量 内积_【vector应用】计算两个向量的内积
  6. 细粒度分类:Hierarchical Bilinear Pooling(HBP),分级双线性池化(一)
  7. 计算机窗口显示不出来的,任务栏不显示打开的窗口,详细教您打开的窗口在任务栏上显示不出来...
  8. SPFA算法模板(刘汝佳版)--Wormholes POJ - 3259
  9. 怎么把video文件改成mp4_怎么把视频转换成MP4格式?这招教你轻松搞定!
  10. 从入门到变现|全面解析视频号运营规则,看完少走3天弯路!