Stay Hungry,Stay Foolish!

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.

MailCatcher screenshot

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

mDNS enabled schickling/mailcatcher

Continuous Integration Source Code Docker Image

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

  • Host enabled Avahi daemon
  • Host enabled mDNS NSS lookup

 

 

一些轻量docker应用镜像

https://github.com/schickling/dockerfiles

dockerfiles Build Status

Collection of lightweight and ready-to-use docker images

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
复制代码

 

posted @   lightsong  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!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接口阻塞现象的方法
千山鸟飞绝,万径人踪灭
点击右上角即可分享
微信分享提示