2021-06-15
ローカル開発環境XAMPPにメール送信機能を実装する(Windows編)
Windowsのローカル開発環境にXAMPPを使用しています。
インストール直後、デフォルトの状態ではメールサーバの設定がされていないため、アプリケーションからのメール送信を行うことができません。そのため、アプリケーションの開発に先立ち、XAMPPの設定を行う必要があります。
PHPのsendmail関数を利用して、メールが送信できる状態に設定します。なお、メールの送信サーバはGmailまたはYahoo!メールを利用したいと思います。事前にGoogleまたはYahoo!アカウントの用意してください。
xamppの設定ファイルを変更
XAMPPのバージョンによって、設定ファイルの内容が多少異なるかもしれませんが、環境に合わせて読み替えてください。
php.iniの変更
xampp\php\php.iniを開き、1100行目あたり。sendmail_path
で検索してください。
;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
↓
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
XAMPPのバージョンによっては;sendmail_path =
と記述されていない場合があるかもしれません。その場合はご自身の環境に合わせて、sendmailの実行ファイルへのパスを記入してください。
sendmail.iniの変更
xampp\sendmail\sendmail.iniを開き、利用するサービス(GmailまたはYahoo!メール)に合わせて、下記の設定を行ってください。
Gmailの場合
Gmailを使用してメールを送信する場合は、以下のようにアカウント情報を入力してください。
smtp_server=smtp.gmail.com
smtp_port=587
auth_username=(Gmailメールアドレス)
auth_password=(Googleアカウントのパスワード)
Yahoo!メールの場合
Yahoo!メールを使用してメールを送信する場合は、以下のようにアカウント情報を入力してください。
smtp_server=smtp.mail.yahoo.co.jp
smtp_port=587
auth_username=(Yahoo!アカウントのユーザ名 @yahoo.co.jpは不要)
auth_password=(Yahoo!アカウントのパスワード)
Apacheの再起動
php.iniとsendmail.iniのファイル編集が完了したらApacheの再起動を行う必要があります。変更した設定を反映させましょう。Apacheの再起動はXAMPPのコントロールパネルから簡単に行えます。
稼働中のApacheを一度停止する
その後再度Apacheを起動する
Gmailアカウントの設定
Gmailをメール送信に使用する場合は、別途Google側の設定が必要です。
経由でメールを送信する場合、上記で設定したGmailアカウントで安全性の低いアプリにアクセスし、「安全性の低いアプリの許可」を有効にしてください。有効にしないとGoogle側のセキュリティに引っ掛かり、メールを送信することができません。
https://myaccount.google.com/lesssecureapps
動作確認
以下のスクリプトを記載したphpファイルをローカル開発環境に設置し、メールを送信できるか確認してください。
sendmail_test.php
mb_language("Japanese");
mb_internal_encoding("UTF-8");
$to = 'to@example.com'; //送信先アドレス
$title = 'メール送信テスト';
$message = 'これはメールの送信テストです';
$headers = 'From: from@example.com'; //送信元アドレス
if (mb_send_mail($to, $title, $message, $headers)) {
echo "メール送信成功です";
} else {
echo "メール送信失敗です";
}
to@example.comを確認し、メールが届いていれば問題ありません。
ローカル開発環境でフォームの動作確認ができれば非常に便利ですね。