Я запускаю установку WordPress в Docker-контейнере с изображением WordPress (https://hub.docker.com/_/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"
Похоже, что эта проблема уже обсуждалась в репозитории WP Docker.
Оформить заказ на этот ответ
Github
Далее вы можете найти другие решения вашей проблемы, если она не работает.
Шаг 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]