如何在 Docker 容器中从 WordPress(联系表格)发送电子邮件?

Posted

技术标签:

【中文标题】如何在 Docker 容器中从 WordPress(联系表格)发送电子邮件?【英文标题】:How to send email from WordPress (contact forms) in Docker container? 【发布时间】:2017-05-29 05:04:07 【问题描述】:

我在使用 Wordpress 图片时遇到了一点问题,非常感谢您的帮助。

我有现有的数据库,我用转储导入。

mysql Dockerfile 清单如下:

FROM mariadb:10.1.20

COPY dump/dump.sql /docker-entrypoint-initdb.d

ENV MYSQL_ROOT_PASSWORD pass

CMD ["mysqld"]

这是 Wordpress Dockerfile,这里我从 src 目录导入我的 wp-content 文件夹:

FROM wordpress:latest

COPY ./src /var/www/html

ENV WORDPRESS_DB_PASSWORD pass
ENV WORDPRESS_DB_NAME db
ENV WORDPRESS_DB_HOST mysql:3306

当然还有 docker-compose.yml 文件:

version: '2'

services:
  mysql:
    build: mysql/
    restart: always
    volumes:
      - db_data:/var/lib/mysql
    container_name: mysql
  vshvetsov:
    depends_on:
      - mysql
    build: wordpress/
    ports:
      - 8000:80
    restart: always
    container_name: wordpress
volumes:
    db_data:

当我使用插件 Contact Form 7 时,单击按钮后发送电子邮件时出错,当然不会在我的邮箱中收到此消息。

我发现的唯一内容是这条消息:

172.18.0.1 - - [13/Jan/2017:13:52:42 +0000] "POST /const HTTP/1.1" 200 879 "http://localhost:8000/contacts" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"
sh: 1: -t: not found

我尝试安装 sendmail,但仍然没有帮助。

谢谢大家的帮助。

我看到了this issue,但目前还没有修复。

【问题讨论】:

我希望这条评论能有所帮助:github.com/docker-library/php/issues/135#issuecomment-277199026 有这方面的消息吗? 有什么消息吗?这是一个关于 docker + wordpress 的非常典型的问题 【参考方案1】:

您可以安装 ssmtp,如下所示: https://github.com/xgodon/RIG/blob/master/dockerized-apps/wordpress/Dockerfile

你只需要一个类似 ssmtp.conf 的文件

mailhub=smtp.gmail.com:587
AuthUser=xxx@mail.com
AuthPass=
UseSTARTTLS=YES
# Allow the "From" email header.
FromLineOverride=YES

发送有延迟(因为没有限定的主机名),但这里是解决方案: https://www.digitalocean.com/community/questions/sendmail-is-slow-to-send-mail

我会尽快更新 Dockerfile。

【讨论】:

以上是关于如何在 Docker 容器中从 WordPress(联系表格)发送电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

(Docker)如何在 WordPress 容器中使用单独的 Composer 容器安装依赖项?

如何使用 nginx-proxy 与 wordpress docker 容器一起运行 phpmyadmin?

在 docker 容器超时中从 s3 复制到 Redshift

在 Rider 中从 docker-compose 调试 .net 核心容器是错误的

docker-compose mysql 容器拒绝访问 wordpress 容器

docker使用示例