无法从 keycloak 建立到 Mailhog 的 SMTP 连接

can't establish SMTP connection to the Mailhog from keycloak

我有一个 docker-compose,它包含 Keycloak 和 Mailhog。我在 Keycloak 中配置了 Mailhog,但它不起作用。我在 Powershell 中尝试了 MailHog,它可以工作。谁能帮我弄清楚为什么它不起作用?

Keycloak 上的 Mailhog 配置步骤:

当我点击“测试连接”时,它显示“错误!无法发送电子邮件”错误消息。但我尝试使用下面的 cmd 发送电子邮件。

Send-MailMessage -To "master@test.com" -From "sender@test.com" -Subject "Test email1" -SmtpServer "localhost" -Port 1025

Docker 撰写文件

        version: '3.6'
    
    services:
      mailhog-keycloak:
        image: mailhog/mailhog
        container_name: mailhog
        logging:
          driver: 'none'  # disable saving logs
        ports:
          - 1025:1025 # smtp server
          - 8025:8025 # web ui
        networks:
          - dev_network
      postgres-keycloak:
        image: postgres:9.6-alpine
        container_name: postgres
        environment:
          POSTGRES_DB: keycloak
          POSTGRES_USER: keycloak
          POSTGRES_PASSWORD: password
        networks:
          - dev_network
    
      keycloak:
        image: jboss/keycloak:10.0.2
        container_name: keycloak_10
        environment:
          DB_VENDOR: POSTGRES
          DB_ADDR: postgres
          DB_DATABASE: keycloak
          DB_USER: keycloak
          DB_PASSWORD: password
          KEYCLOAK_USER: admin
          KEYCLOAK_PASSWORD: admin
        ports:
          - 8080:8080
        external_links:
          - postgres
        volumes:
          - ./themes/keycloak:/opt/jboss/keycloak/themes/shoping
          - postgres-keycloak
        networks:
          - dev_network
    networks:
      dev_network:

问题是 localhost - 每个容器都有自己的命名空间,因此每个容器都有自己的 localhost,它独立于其他容器本地主机。

Host 字段中使用 mailhog(也许 mailhog-keycloak)而不是 localhost - 这是一个 container/service 名称,应该解析当前的 mailhog 容器IP,所以应该可以。