XAMPPのローカル環境からメールを送信できるように設定する方法【初心者向け】
XAMPPのローカル環境から【メールを送信】できるように設定する方法を初心者向けに解説した記事です。基礎となる、メール送受信の仕組みから解説しているので、初心者でも簡単に理解することができます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
PHPの開発環境として使われることが多いXAMPPは、ローカル環境からメールを送信することが可能です。
今回は初心者向けに、メール送信の設定方法を紹介します。
おさらい:メール送受信の仕組み
設定方法の前に、そもそもメールが送受信できる仕組みについて知っておきましょう。
通常、下記のような順序でメールは送受信がおこなわれます。
(※Gmailを使って、Yahoo!のメールアドレスにメールを送る場合を例にしています)
- ブラウザでGmailの画面を表示
- メール作成
- メール送信
- GmailのSMTPサーバがメールを受信
- GmailのSMTPサーバがyahooのSMTPサーバにメールを送信
- YahooのSMTPサーバがメールを受信
- YahooのSMTPサーバが該当のyahooメールアドレス宛にメールを送信
- 該当のYahooメールアドレスの持ち主がメールを受信
今回の設定では1〜4を扱うことになります。
この流れを意識しながら取り組んでみてください。
田島メンター!XAMPPでメールを送信する関数を書いてみたんですが、送信に失敗してしまうみたいなんですが。
レンタルサーバーだと送信できるんだけど、ローカルからだと少し設定が必要なんだ。方法を見てみよう!
はい!
事前準備
今回の作業では設定ファイルを直接編集することになります。万が一に備えて、作業前にバックアップは必ず取っておくようにしましょう。
また、メールアドレスを設定する必要があるので、利用できるメールアドレスをひとつ用意しておいてください。
(※今回はGmailを例として使います)
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
XAMPPでのメール送信設定
まずは、「C:xamppphp」直下にある、「php.ini」をテキストエディタを使って開きます。
※xamppフォルダの場所はインストール時に変更することができますが、今回はデフォルトのインストール先を使用しています。
テキストエディタで開いたら、「mail function」で検索をかけます。
検索に引っかかった行から28行分(緑の枠で囲まれた箇所)がXAMPPのメールに関する設定の箇所です。
ここで赤枠で囲まれた「;」を削除して、「php.ini」ファイルを上書き保存してファイルを閉じてください。
(※上書き保存前に必ずバックアップをとってください)
続いて、「C:xamppsendmail」直下にある、「sendmail.ini」を同じようにテキストエディタで開いてください。
開いたら「smtp_server」で検索をしてください。検索後、「smtp_server=mail.mydomain.com」の行が表示されるので、「smtp_server=smtp.gmail.com」に書き換えてください。
そのまま、「smtp_port=25」で検索をしてください。検索後、「smtp_port=25」の行が表示されるので、「smtp_port=587」に書き換えます。
(※「smtp_port=587」に編集する理由は今回は割愛します)
さらに、「auth_username」で検索をしてください。検索後、「auth_username」が検索に引っかかり、その下に「auth_password」の行があります。
ここで「auth_username=」を「auth_username=test@gmail.com」に編集してください。
(※今回は例として「test@gmail.com」にしていますが、実際は利用するメールアドレスを記載してください)
今度は「test@gmail.com」を使用する際に必要なパスワードを、「auth_password=password」のように入力してください。
最後に、「force_sender=」で検索をしてください。検索後「force_sender=」の行が表示されますので、先ほどのように「force_sender=test@gmail.com」と入力してください。
以上で「sendmail.ini」の編集は完了ですので、上書き保存してファイルを閉じてください。
設定ファイルを変える、ポート番号を25から587にする。gmailのユーザー名とパスワードを設定する。これで良いですか?
OK!メールを送るにはSMTPサーバーが必要なんだよね。SMTPプログラムは25番ポートを使用するってだいたい決まってるんだよね。今回はgmailのSMTPサーバーを使うよ。
587番ポートに変更したのには理由があるんですか?
主に迷惑メール対策なんだ。誰でもSMTPサーバーからメールを送れたら困るので、587番ポートでユーザー認証もするようになったんだ。
メールの送信テスト
設定が完了したら、実際にメールが送れるかテストしてみましょう。
まずはじめに、「C:xamppphp」直下に、「test_mail.php」というファイルを作成してください。
作成後、下記の内容をコピーして保存しておきましょう。
<?php
if (mb_send_mail(‘送信先メールアドレスを入れる’, ‘TEST SUBJECT’, ‘TEST BODY’)) {
echo ‘送信完了’;
} else {
echo ‘送信失敗’;
}
作成した「test_mail.php」をダブルクリックするとメールが送信されるので、「sendmail.ini」に登録したメールアドレスに、メールが届いているか確認してください。
無事にメールが届いていれば設定完了です。
万が一メールが届いていない場合は、「C:xamppsendmail」直下に作成される「error.log」ファイルを確認し、問題箇所を特定してください。
(※error.logファイルはエラーが発生したタイミングで自動的に作成されるため、テストする前には存在しません)
おわりに
今回の記事は以上です。
XAMPPをさらに使いこなしたい場合は、XAMPPでセキュリティ設定を行う方法も合わせてご覧ください。
ローカルからメールが送信できました!
お問い合わせフォームなどを設置して、メールで送るのもいいね。
これからは、通常の案件はデータベースに登録して緊急の案件は、メールでも送るといった使い方が出来そうです。
後、言い忘れたんだけど、gmailのアカウントがあるからといって、不特定多数の人に大量にメールを送らないようにしたいね。メールは奥が深いので、興味がある人は、ブートキャンプで質問してね!
PHPを勉強していて、
・もっと効率的に勉強したい
・誰かに聞きながら学びたい
・自分でWebサービスを作りたい
と思ったことはないでしょうか?
そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、オリジナルWebサービスを開発することが可能です。
独学に限界を感じている場合はご検討ください。