コーディングの勉強

【わかりやすく解説】PHPを使ってローカル環境のMAMPからメールを送信するための設定方法

こんにちは、mito(@mito_works)です。

PHPを使って制作をしている中で、お問い合わせフォームを作りたいということ、よくあると思います。

momo
momo
設定をしないとローカル環境からはメール送信の確認はできないよ!
mito
mito
設定ファイルをいじると、ローカル環境からでもメール送信テストが可能になります。

今回は、ローカル環境からメールを送信するための設定方法を確認します。

環境の確認

使うツール、サービス

  • Mac
  • MAMP
  • Gmail
  • Postfix

 

momo
momo
Postfixとはメールを転送するソフトウェアのことだよ!Macではデフォルトでインストールされているよ!
mito
mito
今回はこのPostfixの設定を変えることでローカルのMAMPからでもメール送信可能にしていきます

設定手順

MAMPを止める

MAMPが立ち上がっている場合はMAMPをStopしてください。

Gmailのアプリパスワードを取得する

momo
momo
アプリパスワードとは、安全性の低いアプリやデバイスにGoogleアカウントへアクセスを許可する16桁のパスコードだよ!
mito
mito
つまりGmailはメールを送信する際に認証が必要になるということです。
  • STEP1
    ブラウザでGoogleアカウント管理を開く
  • STEP2
    左のタブのセキュリティーをクリックし、アプリパスワードをクリック
  • STEP3
    アプリパスワードを生成するアプリとデバイスを選択し、生成ボタンクリック
  • STEP4
    生成されたアプリパスワードをコピー

    ※閉じてしまうとパスワードは再表示されないので、開きっぱなしをオススメします。

    万が一画面を閉じた場合は、アプリパスワードを一回削除してもう一回作り直しましょう。

momo
momo
アプリパスワードが使えないエラーが出る人は、アカウントの2段階認証を行なっていないことが原因だと思うのでまずは2段階認証の設定をしてね!

Postfixの設定にgmail情報を追加する

修正ファイルは、以下のファイルパスにあるファイルです。

/private/etc/postfix/main.cf
  • STEP1
    ファイダーからフォルダ移動で開く

    ファイダーで、移動>フォルダへ移動し、表示されたウィンドウに/private/etc/postfix/と入力

     

  • STEP2
    main.cfを開き以下のコードをファイルの最後に付け足し、ファイルを上書き
    # Gmail on MAMP
    #
    myorigin = gmail.com
    myhostname = smtp.gmail.com
    relayhost = [smtp.gmail.com]:587
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/private/etc/postfix/アプリパスワード
    smtp_sasl_security_options = noanonymous
    smtp_sasl_mechanism_filter = plain
    inet_protocols = all
    smtp_use_tls = yes
    smtp_tls_security_level = encrypt
    tls_random_source = dev:/dev/urandom

    hash:/private/etc/postfix/アプリパスワード

    ↑ここには先ほど取得したアプリパスワードを入れます。(余白は不要です。)

    mito
    mito
    アクセス権を変更しなければ上書きできないと思うので、フォルダ名、ファイル名それぞれ右クリックし、「情報を見る」からダイアログ右下の鍵アイコンをクリック。「共有とアクセス権」の「読み出しのみ」を「読み/書き」に変更しましょう。

取得したアプリパスワードを記述するためのファイル作成

  • STEP1
    新規ファイルを作成する

    /private/etc/postfix/ の直下に新規ファイルを作成します。

    ターミナルを立ち上げ、(「アプリケーション」→「ユーティリティ」→「ターミナル」)以下を入力します。

    sudo vim /private/etc/postfix/アプリパスワード

     

    momo
    momo
    アプリパスワードは先ほど生成したパスワードだよ!
  • STEP2
    新規ファイルの中身を編集

    iキーでINSERTモードにし、

    [smtp.gmail.com]:587 メールアドレス@gmail.com:アプリパスワード

    こちらをコピペで入れます。メールアドレスは受信したいメールアドレス。アプリパスワードは生成したパスワードにおきかえます。

  • STEP2
    編集を完了し、閉じる

    Enterキーを押し、wqを押して終了します。

    mito
    mito
    /private/etc/postfix/にアプリパスワード名でファイルができています。
  • STEP2
    データベース作成

    ターミナルを起動します。

    sudo postmap /private/etc/postfix/アプリパスワード 

    以下を実行します。

    mito
    mito
    /private/etc/postfix/にアプリパスワード名.dbというファイルができています。
momo
momo
ここまででPostfixの設定は終わりだよ

テストメールの送信

きちんと設定ができたか確認します。

ターミナルから、以下を実行します。

date | mail -s test 受信したいアドレス@gmail.com

送信日時が書かれたメールが届いたら設定はOKです。

momo
momo
お疲れ様でした〜。
ABOUT ME
mito
こんにちは!mitoです。 フロントエンド開発、デザイン全般をやっているクリエイターです。 学ぶことと教えることが好きです。 子育てをする中で、自分の生活に働き方を合わせたいと思うようになり、2020年4月からフリーランスになりました。 好奇心旺盛でやりたいこと多め、ワクワクすると止まれない性格です。 同じように一緒にチャレンジする人の背中そっと押せたり、励ましあえるようなブログになるといいなと思っています。