You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为MailCatcher收件箱设置限制?支持按最近7天配置吗?

限制MailCatcher收件箱仅保留最近7天邮件的实现方法

MailCatcher本身没有内置的自动过期清理功能,但可以通过以下几种方式实现需求:

1. 定时脚本调用API清理(推荐)

利用MailCatcher提供的HTTP API,配合定时任务(如Linux cron)自动删除旧邮件:

  • 核心思路:调用GET /messages接口获取所有邮件的创建时间和ID,筛选出7天前的邮件,再调用DELETE /messages/:id接口删除。
  • 示例Shell脚本(需安装curl和jq工具):
# 计算7天前的Unix时间戳
SEVEN_DAYS_AGO=$(date -d "-7 days" +%s)

# 拉取所有邮件数据,过滤出超过7天的邮件ID
OLD_MAIL_IDS=$(curl -s http://localhost:1080/messages | jq -r ".[] | select(.created_at | fromdate < $SEVEN_DAYS_AGO) | .id")

# 循环删除旧邮件
for ID in $OLD_MAIL_IDS; do
  curl -X DELETE http://localhost:1080/messages/$ID
done

将脚本保存为clean_mailcatcher.sh,添加可执行权限后,通过crontab -e添加每日执行任务:

0 0 * * * /path/to/clean_mailcatcher.sh

2. 修改MailCatcher源码(定制化方案)

如果需要深度定制,可以修改MailCatcher的源码逻辑,在邮件存储环节自动清理旧邮件:

  • 找到邮件存储相关代码(如lib/mail_catcher/mail.rb),在新增邮件时遍历现有邮件,删除创建时间早于7天的条目。
  • 注意:这种方式会增加维护成本,MailCatcher版本更新后需要重新修改代码。

3. Docker部署时使用第三方定制镜像

若通过Docker运行MailCatcher,可选择集成了自动清理功能的第三方镜像,通过环境变量配置保留天数(例如MAILCATCHER_RETENTION_DAYS=7),无需自行编写脚本。

内容的提问来源于stack exchange,提问作者servusMori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 06:01:00