Docker-Compose Wordpress:wp_mail()无效

时间:2017-10-19 21:52:37

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

我在带有WordPress图像(https://hub.docker.com/_/wordpress/)的docker-container中运行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"

2 个答案:

答案 0 :(得分:0)

似乎这个问题已经在WP docker image repo中被讨论过了。 查看此答案 Github

如果你的问题不起作用,你可能会找到其他解决方案。

答案 1 :(得分:0)

第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 RELAY SERVER]