初心者ですがお願いします、
dockerで、PHP+nginx+Mysqlの環境で、emailの送信がしたいのですが、うまくいきません。
↓のサイトを参考に、mailhogを追加し、mhsendmailというものも追加しました。
docker-compose.yml
version: "3.7" services: mailhog: image: mailhog/mailhog ports: - "8025:8025" - "1025:1025" php: build: ./docker/php volumes: - ./server:/var/www depends_on: - db nginx: image: nginx ports: - 80:80 - 8000:8000 volumes: - ./server:/var/www - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - php db: # Dockerfileの相対Path build: ./docker/mysql/ # 環境変数としてパスワードを設定 environment: MYSQL_ROOT_PASSWORD: password # データの保存場所を設定 volumes: - mysql-data:/var/lib/mysql ports: - 3306:3306 volumes: mysql-data:
Dockerfile
# BaseImage FROM php:7.3-fpm COPY php.ini /usr/local/etc/php/ # package update & install # Dockerは文を実行するたびにイメージのレイヤーを作成されてしまうので ; でワンライナーにする \ で次行に続く RUN apt-get update \ && apt-get install -y zlib1g-dev libzip-dev default-mysql-client \ && docker-php-ext-install zip pdo_mysql # 日本語環境 RUN apt-get update -qq ;\ apt-get install -y locales ;\ locale-gen ja_JP.UTF-8 ENV LANG ja_JP.UTF-8 ENV LC_CTYPE ja_JP.UTF-8 RUN localedef -f UTF-8 -i ja_JP ja_JP.utf8 ENV LC_ALL ja_JP.UTF-8 # Composer install RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # mhsendmail RUN curl -sSLO https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ && echo 'sendmail_path = "/usr/local/bin/mhsendmail --smtp-addr=mailhog:1025"' > /usr/local/etc/php/conf.d/sendmail.ini ENV COMPOSER_ALLOW_SUPERUSER 1 ENV COMPOSER_HOME /composer ENV PATH $PATH:/composer/vendor/bin WORKDIR /var/www RUN composer global require "laravel/installer" # ターミナル画面を見やすく変更 RUN echo 'export PS1="\n[\033[35m]\u@\h[\033[00m]:[\033[36m]\w[\033[00m]\n[app] $ "' >> /root/.bashrc
test.php
php
1<?php 2if (mail('receive@gmail.com', 'テストだよ', '届いてるかな?', 'From: send@gmail.com')) { 3 echo 'sent'; 4}else { 5 echo 'not sent'; 6} 7 8?>
実行するとsentが表示され、localhost:8025を確認しても、
と表示されるのですが、gmailの方で受信できていません。
googleアカウントの設定で、「安全性の低いアプリのアクセスを許可」がオンになっているのは確認しました。
送信側をみても送信済みボックスにありませんでした。
macOS Catalina 10.15.6で確認しています。
他に必要な情報などありましたらご指摘をお願いします。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。