
sj26/mailcatcherMailCatcher是一个轻量级工具,运行简单的SMTP服务器以捕获所有发送至其的邮件,并通过Web界面直观展示。它适用于开发和测试环境,帮助开发者在不发送真实邮件的情况下,查看应用程序发送的邮件内容、格式及附件,简化邮件功能调试流程。
catchmail命令,简化PHP等应用的邮件发送配置bash# 基本运行(默认SMTP端口1025,HTTP端口1080) docker run -d -p 1025:1025 -p 1080:1080 --name mailcatcher sj26/mailcatcher # 自定义SMTP和HTTP端口 docker run -d -p 25:25 -p 8080:8080 --name mailcatcher sj26/mailcatcher --smtp-port 25 --http-port 8080 # 绑定到特定IP(例如允许外部访问) docker run -d -p 1025:1025 -p 1080:1080 --name mailcatcher sj26/mailcatcher --smtp-ip 0.0.0.0 --http-ip 0.0.0.0
| 选项 | 描述 | 默认值 |
|---|---|---|
--smtp-ip | SMTP服务器绑定IP | 127.0.0.1 |
--smtp-port | SMTP服务器端口 | 1025 |
--http-ip | Web界面绑定IP | 127.0.0.1 |
--http-port | Web界面端口 | 1080 |
--foreground | 前台运行(非守护进程模式) | - |
--help | 显示帮助信息 | - |
在config/environments/development.rb中添加:
rubyconfig.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { address: '127.0.0.1', # Docker主机IP或容器名称 port: 1025 } config.action_mailer.raise_delivery_errors = false
修改php.ini或Apache配置:
ini; php.ini配置 sendmail_path = /usr/bin/env catchmail -f *** ; Apache配置 php_admin_value sendmail_path "/usr/bin/env catchmail -f ***"
若MailCatcher使用自定义端口:
inisendmail_path = /usr/bin/env catchmail --smtp-port 25 -f ***
在settings.py中添加:
pythonif DEBUG: EMAIL_HOST = '127.0.0.1' # Docker主机IP或容器名称 EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' EMAIL_PORT = 1025 EMAIL_USE_TLS = False
MailCatcher提供RESTful API接口:
/messages:获取邮件列表(JSON格式)/messages/:id.json:获取指定邮件的元数据/messages/:id.html:获取邮件HTML内容/messages/:id.plain:获取邮件纯文本内容/messages/:id.source:获取邮件原始源代码/messages/:id/:cid:通过CID获取附件--smtp-ip 0.0.0.0和--http-ip 0.0.0.0绑定到所有网络接口MailCatcher基于MIT许可证开源,详情参见LICENSE。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务