icon
icon

XAMPPのローカル環境からメールを送信できるように設定する方法【初心者向け】

XAMPPのローカル環境から【メールを送信】できるように設定する方法を初心者向けに解説した記事です。基礎となる、メール送受信の仕組みから解説しているので、初心者でも簡単に理解することができます。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

PHPの開発環境として使われることが多いXAMPPは、ローカル環境からメールを送信することが可能です。

今回は初心者向けに、メール送信の設定方法を紹介します。

 

おさらい:メール送受信の仕組み

設定方法の前に、そもそもメールが送受信できる仕組みについて知っておきましょう。

通常、下記のような順序でメールは送受信がおこなわれます。

(※Gmailを使って、Yahoo!のメールアドレスにメールを送る場合を例にしています)

 

  1. ブラウザでGmailの画面を表示
  2. メール作成
  3. メール送信
  4. GmailのSMTPサーバがメールを受信
  5. GmailのSMTPサーバがyahooのSMTPサーバにメールを送信
  6. YahooのSMTPサーバがメールを受信
  7. YahooのSMTPサーバが該当のyahooメールアドレス宛にメールを送信
  8. 該当のYahooメールアドレスの持ち主がメールを受信

今回の設定では1〜4を扱うことになります。

この流れを意識しながら取り組んでみてください。

 

大石ゆかり

田島メンター!XAMPPでメールを送信する関数を書いてみたんですが、送信に失敗してしまうみたいなんですが。

田島悠介

レンタルサーバーだと送信できるんだけど、ローカルからだと少し設定が必要なんだ。方法を見てみよう!

大石ゆかり

はい!

 

事前準備

今回の作業では設定ファイルを直接編集することになります。万が一に備えて、作業前にバックアップは必ず取っておくようにしましょう。

また、メールアドレスを設定する必要があるので、利用できるメールアドレスをひとつ用意しておいてください。

(※今回はGmailを例として使います)

 

 

[PR] PHPプログラミングで挫折しない学習方法を動画で公開中

XAMPPでのメール送信設定

まずは、「C:xamppphp」直下にある、「php.ini」をテキストエディタを使って開きます。

※xamppフォルダの場所はインストール時に変更することができますが、今回はデフォルトのインストール先を使用しています。

 

テキストエディタで開いたら、「mail function」で検索をかけます。

検索に引っかかった行から28行分(緑の枠で囲まれた箇所)がXAMPPのメールに関する設定の箇所です。

WS0000031

ここで赤枠で囲まれた「;」を削除して、「php.ini」ファイルを上書き保存してファイルを閉じてください。

(※上書き保存前に必ずバックアップをとってください)

 

続いて、「C:xamppsendmail」直下にある、「sendmail.ini」を同じようにテキストエディタで開いてください。

開いたら「smtp_server」で検索をしてください。検索後、「smtp_server=mail.mydomain.com」の行が表示されるので、「smtp_server=smtp.gmail.com」に書き換えてください。

smtp_domain

 

そのまま、「smtp_port=25」で検索をしてください。検索後、「smtp_port=25」の行が表示されるので、「smtp_port=587」に書き換えます。

(※「smtp_port=587」に編集する理由は今回は割愛します)

smtpport

 

さらに、「auth_username」で検索をしてください。検索後、「auth_username」が検索に引っかかり、その下に「auth_password」の行があります。

auth

ここで「auth_username=」を「auth_username=test@gmail.com」に編集してください。

(※今回は例として「test@gmail.com」にしていますが、実際は利用するメールアドレスを記載してください)

 

今度は「test@gmail.com」を使用する際に必要なパスワードを、「auth_password=password」のように入力してください。

auth_after

 

最後に、「force_sender=」で検索をしてください。検索後「force_sender=」の行が表示されますので、先ほどのように「force_sender=test@gmail.com」と入力してください。

forcesender

以上で「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サービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。