noImage

ローカル環境(XAMPP)でメールを送受信


ローカル環境(XAMPP)でメールを送受信

はじめに

ローカル環境でサイト制作を進めていく中で、メールを送受信したい場面があるかと思います。
フォームが思い通りに動作しているかローカルで確認したいですよね?
しかし、デフォルトのままではXAMPPでメールの送受信はできません。
今回はそんな時にローカル環境でメールの送受信を可能にする方法をご紹介します。

XAMPPとは…

まずは、XAMPPがインストールされていることが前提となります。
XAMPPとは、インストールするだけで簡単にウェブサーバーがローカルに展開でき、すぐにウェブ開発がおこなえるようになる優れたソフトウェアパッケージです。
しかし、XAMPPには、メールサーバーが含まれていません。
メール送受信機能を使用するには別途設定する必要があります。
XAMPPにはないSMTPサーバーは外部のものを利用します。そして、XAMPPパッケージに含まれるPHP・sendmailでメール送受信を実現します。

メールが送受信できるまでの3STEP

メールが送受信できるまでには、大きく分けて、3つのSTEPがあります。

STEP 1. 外部SMTPサーバーの設定
STEP 2. XAMPP「sendmail」で外部SMTPと連携
STEP 3. XAMPP「php.iniの設定

STEP 1. 外部SMTPサーバーの設定

XAMPPに含まれていないメールサーバーを設定します。
外部のSMTPサーバーは、Gmailを使用します。

まず、使用するGmailアカウントで、SMTPサーバーとの接続時に使用する「パスワード」を作成します。
このパスワードの設定はGoogleの2段階認証を有効にしておかないと設定できません。
まずは2段階認証を有効にする設定から進んでいきましょう。

まず、Googleにログインして、アカウントページのセキュリティをクリックします。

「2段階認証プロセス」が無効になっていたら有効にしていきます。
「2段階認証プロセス」をクリックします。

「使ってみる」をクリックします。
手順に沿って「2段階認証」を有効にします。
有効にすると以下の様な表示に変わります。

以上で「2段階認証」が有効になりましたので、次はアカウントのパスワードを設定します。

「2段階認証プロセス」をクリックします。
最初に本人確認され、以下の「2段階認証プロセス」の設定画面になります。

画面の一番下に「アプリパスワード」がありますので、こちらをクリックします。
パスワードを設定するための本人確認が完了したら以下の画面に遷移します。

「APP name」でアプリの名前を付けて「作成」をクリックします。
アプリの名前は何でも構いません。

「アプリ パスワード」が生成されますので、こちらの情報を保存しておいてください。
また、こちらのパスワードは4文字ごとスペースで区切られて表示されますが、パスワードを入力する際はスペースを除いて入力してください。
以上でGmailのSMTPサーバーがローカルXAMPPの外部SMTPとして利用できる準備が整いました。
これを使ってXAMPPのPHP・sendmailと連携していきます。

STEP 2. XAMPP「sendmail」で外部SMTPと連携

次からはXAMPP側の設定となります。

まずはXAMPPの管理画面を表示してください。
Appacheが起動していたら停止して、「Exploer」をクリックします。

xamppフォルダが開きますので「sendmail」のフォルダへ移ります。

「sendmail.ini」ファイルを開きます。

以下の通り編集します。
編集する前に、ファイルのバックアップを取っておいてください。

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
auth_username=パスワードを発行したメールアドレスを記載(送信元メールアドレス)
auth_password=発行したパスワードを記載

STEP 3. XAMPP「php.ini」の設定

次はphp.iniの編集です。
XAMPPの管理画面を開きます。

「config」をクリックして「php.ini」を開き、以下の通り変更します。
こちらのファイルも変更する前にバックアップを取っておきましょう。

[mail function]
SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = your@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

以上でXAMPPとGmailのSMTPが繋がったはずです。
実際に連携されているのか動作確認してみましょう。

動作確認

以下のPHPファイルを作成し、C:\xampp\htdocs直下に保存します。
ファイルの名前は「testmail.php」とします。

<?php
$to      = '送信先のメールアドレスを記載';
$subject = 'testmail-sample'; 
$message = 'メール送信は成功しました!!!'; 
$headers = 'From: testmail@gmail.com' . "\r\n"; 

if(mail($to, $subject, $message, $headers)){
    echo "メール送信は成功しました!!!";
}else{
    echo "メールは送信できませんでした。。。";
}
?>

localhost\testmail.phpをブラウザで開きます。
ブラウザに「メール送信は成功しました!!!」と表示され、設定したメールアドレスに送信メールが届いていれば成功です。

まとめ

メールサーバーの構成や管理には複雑さが伴い、セキュリティの実装が不可欠です。
XAMPPにデフォルトでメールサーバーが含まれていないのは、セキュリティ上の問題がユーザーにふりかかる恐れがあるというのも理由の一つです。
安全性が確保された外部のSMTPサーバーを利用することで、信頼性を保持しつつ利用します。