【问题标题】:Docker-Compose Wordpress: wp_mail() not workingDocker-Compose Wordpress:wp_mail() 不工作
【发布时间】:2017-10-19 21:52:36
【问题描述】:

我使用 WordPress 映像 (https://hub.docker.com/_/wordpress/) 在 docker 容器中运行 WordPress 安装。我的问题是我无法通过 wp_mail() 或 PHP mail() 发送邮件。

当我尝试调用 mail() 函数时,我收到“内部服务器错误”。

我能做什么?我需要外部邮件服务器吗?

我的 docker-compose.yml:

wordpress:
image: wordpress
container_name: shk_wordpress
links:
 - mariadb:mysql
environment:
 - WORDPRESS_DB_PASSWORD=admin
ports:
 - "8000:80"
volumes:
 - ./app:/var/www/html
 - ./theme/:/var/www/html/wp-content/themes/shk-theme
mariadb:
image: mariadb
container_name: shk_mariadb
environment:
  - MYSQL_ROOT_PASSWORD=admin
  - MYSQL_DATABASE=wordpress
volumes:
 - ./database:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: shk_phpmyadmin
environment:
  - PMA_ARBITRARY=1
  - MYSQL_USER=root
  - MYSQL_PASSWORD=admin
  - MYSQL_ROOT_PASSWORD=admin
ports:
  - "9000:80"
links:
  - "mariadb:mysql"

【问题讨论】:

  • 您有任何错误记录吗?这可能是因为您的 docker 映像没有打开正确的端口,可能是 25

标签: php wordpress docker docker-compose mail-server


【解决方案1】:

似乎这个问题已经在 WP docker image repo 讨论过了。 签出这个答案 Github

如果这些方法不起作用,您可能会进一步找到解决问题的其他方法。

【讨论】:

    【解决方案2】:

    第 1 步:

    在你的 docker-compose.yml 中,替换

    image: wordpress
    

    通过

    build: .
    

    第 2 步:

    创建一个 Dockerfile :

    FROM wordpress
    RUN apt-get update
    RUN apt-get install -y ssmtp
    RUN echo "sendmail_path = /usr/sbin/ssmtp -t" >> /usr/local/etc/php/conf.d/sendmail.ini
    RUN sed -i -e 's/mailhub=mail/mailhub=[IP RELAY SERVER]/' /etc/ssmtp/ssmtp.conf
    RUN sed -i -e 's/#rewriteDomain=/rewriteDomain=[IP RELAY SERVER]/' /etc/ssmtp/ssmtp.conf
    RUN sed -i -e '/hostname=/d' /etc/ssmtp/ssmtp.conf
    

    第 3 步: 替换[IP中继服务器]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-13
      • 2020-06-11
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      • 2021-02-26
      相关资源
      最近更新 更多