MAMPのローカル環境ではPHPでメールの送信ができず不便ですが、設定すればローカルでもメールの送信ができるようになります。
今回はMAMPのローカル環境でメールを送信する設定のやり方を解説します。
使用するメールはGmailです。
メール転送のソフトウェア、Postfixについて
Postfixとはメールを転送するソフトウェアのことです。メールの送信はこのPostfixを使って行われています。
Macにはデフォルトでインストールされているので、Postfixの設定を変更することでMAMPのローカル環境からでもメールが送信できるようになります。
難しそうと思うかもしれませんが、そこまで難しくないので安心してください。
メール送信の設定の手順
設定の手順は以下の通りです。
- Gmailのアプリパスワードを取得
- それを使ってPostfixの設定を変更
- テストメール送信、メール受信できればok
順番に解説します。
1.Gmailのアプリパスワードを取得
Gmailはメールを送信する際に認証が必要なので、それに必要なアプリパスワードを用意する必要があります。
以下のリンクからアプリパスワードを設定しましょう。
ログインしたら、
- アプリを選択→メール
- デバイスを選択→Mac
を選択し、「生成」をクリックします。
アプリパスワードが生成されます。
このアプリパスワードはあとで使うのでこのタブを開いたままにしておいてください。
「アプリパスワードが使えません」みたいな文章が出た人はアカウントの2段階認証を行なっていないのが原因です。2段階認証をしないとアプリパスワードは使えないのでサクッとやってしまいましょう。
まず以下のURLにアクセスします。
「セキュリティ」をクリックします。
「2段階認証プロセス」をオンにすればokです。
2.Postfixの設定を変更
/private/etc/postfix/main.cf
を編集します。(Mac本体のルートディレクトリから辿ったパスです!)
適当なテキストエディタで開いて、以下をmain.cfの一番最後にそのままコピペします。
# gmailを使用できるようにする
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
「アプリパスワード」と書いてあるところにさっき取得したアプリパスワードをそのままコピペしてください(空白は要りません)。
次にターミナルで
sudo vim /private/etc/postfix/アプリパスワード
を実行します。アプリパスワードはさっき取得したアプリパスワードに置き換えてください。
vimの編集画面になったらi
キーでインサートモードにし、
[smtp.gmail.com]:587 メールアドレス@gmail.com:アプリパスワード
これをコピペします。アプリパスワードは置き換えてください。
メールアドレスは送信先のメールアドレス(=メールを受信したいアドレス)に置き換えます。
そこまでできたらesc
キーを押して、:wq
で終了します。(:wq
はwrite&quit=書き込んで終了という意味のvimコマンドです)。
終わったら/private/etc/postfix/
ディレクトリを確認してみましょう。「アプリパスワード名」というファイルができていたらokです。
「vimを扱うのが怖い…」という人はファイルを自分で作成して編集するのがオススメです。
/private/etc/postfix/
ディレクトリに適当なファイルを用意して、ファイル名を「アプリパスワード名」にして保存します。
それを適当なテキストエディタで開いて、
[smtp.gmail.com]:587 メールアドレス@gmail.com:アプリパスワード
をメールアドレスとアプリパスワードを置き換えて保存すればokです。
次に以下のコマンドを実行します。アプリパスワードは置き換えてください。
sudo postmap /private/etc/postfix/アプリパスワード
すると、/private/etc/postfix/
ディレクトリに「アプリパスワード名.db」というファイルが作られるはずです。
これでPostfixの設定はokです。
3.テストメール送信
ちゃんと設定できているかテストメールを送信して確認してみます。
以下のコマンドでテストメールを送信します。
date | mail -s test 受信したいアドレス@gmail.com
30秒後くらいに送信日時が書かれたメールが来ればokです。お疲れ様でした!
設定後はローカルのお問い合わせフォームなども動作するはずです。もちろんメールの送信や自動返信もできるようになっています。
まとめ
MAMPのローカル環境でメールを送信できるように設定しておくと、お問い合わせフォームなどの動作チェックをしたい場合などにかなり便利です。
ぜひ試してみてください!