无法使用 Postfix 在 Docker 容器中以管理员身份登录

无法使用 Postfix 在 Docker 容器中以管理员身份登录

我尝试将 Postfix 设置为测试服务器,以允许 TDD 测试在本地电子邮件服务器上运行电子邮件验证。这是我的 docker compose yml 文件

  postfixadmin:
    image: postfixadmin
    ports:
      - 9000:80
    restart: unless-stopped
    environment:
      POSTFIXADMIN_DB_TYPE: sqlite
      POSTFIXADMIN_DB_HOST: 192.168.0.12
      POSTFIXADMIN_DB_PORT:
      POSTFIXADMIN_DB_USER: postfixadmin
      POSTFIXADMIN_DB_NAME: /var/tmp/postfixadmin.db
      POSTFIXADMIN_DB_PASSWORD: example
      POSTFIXADMIN_SETUP_PASSWORD: $$2y$$10$$LvtzgPciAKYK9UH3hKwekOki9/RXeV512BsJFxXD8GSME.vQO9Aq2

POSTFIXADMIN_SETUP_PASSWORD 是通过运行 http://localhost:9000/setup.php 检索的。在此示例中,它被选为 example123。但是我无法使用此设置密码登录。我必须重新启动容器,也许每次的加盐量都不同?我不知道,我只是无法登录任何东西,但服务器正在容器中运行。

有人知道我做错了什么或者我是否必须切换到其他软件?

谢谢您的反馈。

答案1

我设法找到了一个解决方案,因此将其留给其他人作为某种参考。

我必须输入双$才能退出变量查找

答案2

对于那些无法正确将哈希添加到文件的人,我tee在获取哈希后使用了以下命令:

php -r 'echo password_hash("password", PASSWORD_DEFAULT);'

用新密码更改“密码”,然后获取结果并\在每个密码前添加$

如果你得到:$2y$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

然后你可以像这样输入:$2y\$10\$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

然后运行这个:

echo "<?php
                \$CONF['database_type'] = 'mysqli';
                \$CONF['database_host'] = '--------------------';
                \$CONF['database_port'] = '3306';
                \$CONF['database_user'] = '--------------------';
                \$CONF['database_password'] = '--------------------';
                \$CONF['database_name'] = '--------------------';
                \$CONF['setup_password'] = '\$2y\$10\$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
                \$CONF['smtp_server'] = 'localhost';
                \$CONF['smtp_port'] = '25';
                \$CONF['encrypt'] = 'md5crypt';
                \$CONF['configured'] = true;
                \$CONF['dkim'] = 'NO';
                \$CONF['dkim_all_admins'] = 'NO';
                ?>" | tee config.local.php

答案3

我会使用network_mode: host主机网络允许容器直接访问主机上运行的服务

相关内容