MailCatcher
MailCatcher
https://mailcatcher.me/
https://hub.docker.com/r/schickling/mailcatcher/
Catches mail and serves it through a dream.
MailCatcher runs a super simple SMTP server which catches any message sent to it to display in a web interface. Run mailcatcher, set your favourite app to deliver to smtp://127.0.0.1:1025 instead of your default SMTP server, then check out http://127.0.0.1:1080 to see the mail that's arrived so far.
Features
- Catches all mail and stores it for display.
- Shows HTML, Plain Text and Source version of messages, as applicable.
- Rewrites HTML enabling display of embedded, inline images/etc and opens links in a new window.
- Lists attachments and allows separate downloading of parts.
- Download original email to view in your native mail client(s).
- Command line options to override the default SMTP/HTTP IP and port settings.
- Mail appears instantly if your browser supports WebSockets, otherwise updates every thirty seconds.
- Runs as a daemon in the background, optionally in foreground.
- Sendmail-analogue command,
catchmail
, makes using mailcatcher from PHP a lot easier.- Keyboard navigation between messages
https://github.com/hausgold/docker-mailcatcher
This Docker images provides the schickling/mailcatcher image as base with the mDNS/ZeroConf stack on top. So you can enjoy the great mailcatcher app, which is accessible by default as mailcatcher.local.
- Requirements
- Getting starting
- docker-compose usage example
- Host configs
- Configure a different mDNS hostname
- Other top level domains
- How it looks
- Further reading
- Host enabled Avahi daemon
- Host enabled mDNS NSS lookup
一些轻量docker应用镜像
https://github.com/schickling/dockerfiles
Collection of lightweight and ready-to-use docker images
- Beanstalkd - Lightweight image of the latest beanstalkd version
- Beanstalkd-Console - Admin console for Beanstalk queue server
- Hugin - Hugin & Panorama tools
- Jekyll - Lightweight jekyll working environment
- Latex - Full texlive distribution
- Mailcatcher - Extra small mailcatcher image
- mysql-backup-s3 - Backup MySQL to S3 (supports periodic backups)
- nginx-envtpl - Nginx image with support for environment variables using envtpl
- NodeJS - Minimal NodeJS + NPM image
- Octave - Lightweight octave development environment
- OpenCV - Lightweight ready-to use OpenCV image
- postgres-backup-s3 - Backup PostgresSQL to S3 (supports periodic backups)
- Redis-Commander - Redis management tool
- Rust - Lightweight nightly Rust build including Cargo and GDB
- swagger-ui - Swagger UI 2.1.2 with API_URL and API_KEY injection (45 MB)
- s3cmd - Lightweight wrapper around s3cmd
- thumbor-nginx-cors - Nginx image for thumbor with CORS support
邮件测试目的应用
https://github.com/fastapi/full-stack-fastapi-template/blob/master/docker-compose.override.yml
services: # Local services are available on their ports, but also available on: # http://api.localhost.tiangolo.com: backend # http://dashboard.localhost.tiangolo.com: frontend # etc. To enable it, update .env, set: # DOMAIN=localhost.tiangolo.com proxy: image: traefik:3.0 volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - "80:80" - "8090:8080" # Duplicate the command from docker-compose.yml to add --api.insecure=true command: # Enable Docker in Traefik, so that it reads labels from Docker services - --providers.docker # Add a constraint to only use services with the label for this stack - --providers.docker.constraints=Label(`traefik.constraint-label`, `traefik-public`) # Do not expose all Docker services, only the ones explicitly exposed - --providers.docker.exposedbydefault=false # Create an entrypoint "http" listening on port 80 - --entrypoints.http.address=:80 # Create an entrypoint "https" listening on port 443 - --entrypoints.https.address=:443 # Enable the access log, with HTTP requests - --accesslog # Enable the Traefik log, for configurations and errors - --log # Enable debug logging for local development - --log.level=DEBUG # Enable the Dashboard and API - --api # Enable the Dashboard and API in insecure mode for local development - --api.insecure=true labels: # Enable Traefik for this service, to make it available in the public network - traefik.enable=true - traefik.constraint-label=traefik-public # Dummy https-redirect middleware that doesn't really redirect, only to # allow running it locally - traefik.http.middlewares.https-redirect.contenttype.autodetect=false networks: - traefik-public - default db: restart: "no" ports: - "5432:5432" adminer: restart: "no" ports: - "8080:8080" backend: restart: "no" ports: - "8000:8000" build: context: ./backend # command: sleep infinity # Infinite loop to keep container alive doing nothing command: - fastapi - run - --reload - "app/main.py" develop: watch: - path: ./backend action: sync target: /app ignore: - ./backend/.venv - .venv - path: ./backend/pyproject.toml action: rebuild # TODO: remove once coverage is done locally volumes: - ./backend/htmlcov:/app/htmlcov environment: SMTP_HOST: "mailcatcher" SMTP_PORT: "1025" SMTP_TLS: "false" EMAILS_FROM_EMAIL: "noreply@example.com" mailcatcher: image: schickling/mailcatcher ports: - "1080:1080" - "1025:1025" frontend: restart: "no" ports: - "5173:80" build: context: ./frontend args: - VITE_API_URL=http://localhost:8000 - NODE_ENV=development playwright: build: context: ./frontend dockerfile: Dockerfile.playwright args: - VITE_API_URL=http://backend:8000 - NODE_ENV=production ipc: host depends_on: - backend - mailcatcher env_file: - .env environment: - VITE_API_URL=http://backend:8000 - MAILCATCHER_HOST=http://mailcatcher:1080 # For the reports when run locally - PLAYWRIGHT_HTML_HOST=0.0.0.0 - CI=${CI} volumes: - ./frontend/blob-report:/app/blob-report - ./frontend/test-results:/app/test-results ports: - 9323:9323 networks: traefik-public: # For local dev, don't expect an external Traefik network external: false
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2021-01-11 Visualizing the stock market structure of sklearn
2017-01-11 lua 立即执行函数
2015-01-11 一种构造WEB服务器端recv和send接口阻塞现象的方法