【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("to@tmp.co.jp", "Title", "Hello World", "","-f from@tmp.co.jp");
?>
アプリを開く
ブラウザでlocalhostを開くとメールが送信されlocalhost:1080を開くとメールが送信されたのが確認できます
