【MAC/XAMPP】APACHEローカルサーバーでメール送信するまで
なんでXAMPPなのか
簡単にPHPサーバーを立てると言えばXAMPP
とMAMP
が選択肢にあると思うのですが、MAMP
はPROでないとSMTPを使うことができません
なのでXAMPP
を使いました
メールサーバーを立てる
ローカルではなくサーバーをレンタルするとメールサーバーも一緒についている場合があると思いますが、ローカルでは自分で立てないといけないです
今回はlocalhost:1025
をローカルのメールサーバーにしようと思います
dockerで立てる場合
まずイメージをダウンロードして
docker pull djfarrelly/maildev
コンテナを作成します
docker run -p 1080:80 -p 1025:25 djfarrelly/maildev
localhost:1025
にメールを送り、localhost:1080
をブラウザーで開くとメールボックスがみられます
コマンドラインで実行する場合
maildev
やmailhog
など色々あると思いますが、Dockerの方と合わせてmaildev
で作成していきます
npm install -g maildev
これでmaildev
で実行すれば、localhost:1025
にメールを送り、localhost:1080
をブラウザーで開くとメールボックスがみられます
XAMPPの設定
メールサーバーをlocalhost:1025に設定したので、php.ini
を変更します
SMTP = localhost
smtp_port = 1025
Postfixの設定
MacはPostfix
でlocalhostのメール管理ができるので、設定していきます
/etc/postfix/main.cf
というファイルにメールサーバーの設定をします
...
#relayhost = [an.ip.add.ress]
relayhost=localhost:1025
smtp_use_tls=yes
smtp_tls_security_level=may
tls_random_source=dev:/dev/urandom
# REJECTING UNKNOWN RELAY USERS
...
項目 | |
---|---|
relayhost | メールサーバー |
tmtp_use_tls | 証明書ベースの認証と暗号化セッションを使得るようにする |
smtp_tls_security_level | 証明書ベースの認証と暗号化セッションを使得るようにする |
tls_random_source | 疑似乱数のための設定 |
PHPアプリからメールを送る
xampp
のDocument root
を設定します
xamppfiles
で検索して出てきたフォルダの配下にetc
フォルダがあるので開きます
etc
の配下にhttpd.conf
というファイルがあるのでこれを編集していきます
DocumentRoot
を変更するので検索してもともとある1行をコメントアウトし、サーバーにしたいフォルダを設定します
DocumentRoot "/Users/user_name/xxx"
この状態でxamppをstart
します
すでに実行している場合はrestart
してください
アプリを作る
先ほど設定したDocumentRoot
のディレクトリにindex.php
を作成します
<?php
mail("[email protected]", "Title", "Hello World", "","-f [email protected]");
?>
アプリを開く
ブラウザでlocalhost
を開くとメールが送信されlocalhost:1080
を開くとメールが送信されたのが確認できます