我正在尝试在 Java Quarkus 应用程序中测试需要电子邮件操作的功能。我希望能够使用
maildev
在本地进行测试。这是我第一次处理电子邮件功能。
目前,我使用 Keycloak 开发服务 (
quarkus-oidc
),它从映像部署 Keycloak Docker 容器quay.io/keycloak/keycloak:23.0.0
。
我从以下资源中获得灵感:
我通过使用 Gmail 帐户配置 Keycloak 电子邮件设置,成功测试了功能。然而,依赖真实的 Gmail 帐户并不适合在 CI 中测试和重放这些测试。
我尝试使用以下 docker-compose 文件。 (我可以成功连接到maildev Web UI)
version: '3.8'
services:
maildev:
container_name: maildev
image: maildev/maildev
ports:
- '1025:1025'
- '1080:1080'
然后,我这样配置Keycloak:
但是,当我尝试“测试连接”按钮时,它总是失败。我完全错过了什么吗?
当设置 Keycloak 以使用本地 Maildev 实例进行电子邮件测试时,需要检查一些配置以确保它们设置正确。您似乎已经关注了一些很好的资源,但让我们确保一切都已就位:
Keycloak 中的 SMTP 服务器配置:
localhost
(或 Maildev 容器的 IP 地址),“SMTP 端口”设置为 1025
(Maildev 的默认 SMTP 端口)。验证领域和客户端设置:
测试连接:
Maildev Docker 配置:
http://localhost:1080
,确认您可以访问 Maildev Web 界面。Docker 网络:
这是考虑网络配置的 Docker Compose 文件的更新版本:
version: '3.8'
services:
maildev:
container_name: maildev
image: maildev/maildev
ports:
- '1025:1025'
- '1080:1080'
networks:
- maildev_network
keycloak:
image: quay.io/keycloak/keycloak:23.0.0
environment:
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=admin
- PROXY_ADDRESS_FORWARDING=true
- KEYCLOAK_HOSTNAME=http://localhost:8180/auth
ports:
- 8180:8080
networks:
- maildev_network
networks:
maildev_network:
更改配置后,请确保重新启动 Keycloak 容器。如果您仍然遇到问题,请检查 Keycloak 和 Maildev 容器的日志中是否有任何错误消息。
此外,您可能需要验证 Keycloak 领域的客户端设置是否也已正确配置为使用本地 SMTP 服务器。