エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


XAMPP環境(ローカル環境)の sendmailからPHPメールを送信する設定方法

      2017/03/27

XAMPP環境の sendmailからメール送信する設定

 

XAMPPとは?

 
XAMPPとは、ローカル環境に LAMP環境(Linux、Apache、MySQL、PHP)の環境を簡単に作成し、PHPのプログラム開発を行うために便利なアプリケーションです。
 
XAMPPオフィシャルサイト
 https://www.apachefriends.org/jp/index.html
 
 
ですが、標準の設定ではメールを送信する設定がされていないため、メールを送信するフォームや WordPressのメールを送信する処理を正しく処理することができません。
 
この記事では、Windows環境の XAMPPのメール送信設定をすることで、PHPからメールを送信できる処理を構築します。
 

 
 
ちなみに、今回紹介する仕組みは、ローカルからメールを送信できるようにしているわけではなく、ローカル PCにある sendmailのプログラムから、外部のメール送信の SMTPサーバ(ここでは、Gmailの SMTPサーバ)に接続し、そのサーバ経由でメールを送信している、ということになります。
そのために、XAMPP環境の sendmailの設定をして...といったところまで勉強しながら作ってみたいという方はほかのサイトを探してください!
 
 


 
 

XAMPPのメール送信の設定

 

php.iniの編集

 
PHPの設定ファイルである「php.ini」を編集します。
 
php.iniは「\xampp\php\php.ini」にあります。
 
もしくは、XAMPPのコントロールパネルの「Config」から選択します。
XAMPP環境(ローカル環境)の sendmailからPHPメールを送信する設定方法
 
 
「php.ini」を開いて、下記の個所を修正します。
「mail function」で検索すると分かりやすいでしょう。
 

 
XAMPPのバージョン(PHPのバージョン)によって表示の並びは違いますが、PHP 5.6では上記のようになります。
4行目の「;SMTP=localhost」、6行目の「;smtp_port=25」がコメントアウトされていることを確認し、14行目の「sendmail_path = “\”C:\xampp2\sendmail\sendmail.exe\” -t”」のコメント処理を外します。
 
「php.ini」は、行頭の「;」がコメントにするための記号です。
 
ここの設定で、メールの送信は「sendmail.exe」を利用する、という設定になります。
 
 
また、PHP 5.4では、
14行目の「sendmail_path = “\”\xampp\sendmail\sendmail.exe\” -t”」のコメントを外すのに合わせて、その下にある「sendmail_path = “C:\xampp\mailtodisk\mailtodisk.exe”」行はコメントにする必要があります。
 
そうしないと、せっかく設定した「sendmail_path」の値が元の設定に上書きされてしまいまして、「\Device\Harddisk2\DR2ディスクがありません」のようなエラーがでる要因になってしまいます。
 
 
 

sendmail.iniの編集

 
続いて、「sendmail.exe」の設定ファイルである「sendmail.ini」を編集します。
 
sendmail.iniは「\xampp\sendmail\sendmail.ini」にあります。
 
 
「smtp_server」で検索し、「smtp_server」と「smtp_port」の値を変更します。
下記の例では、元の設定「smtp_server=mail.mydomain.com」「smtp_port=25」をコメントアウトして残していますが、直接変更しても問題ありません。
 
下記の例は、Gmailを利用していますが、自身で契約している SMTPサーバの情報でも問題ありません。
 

 
ここで設定する情報は、最初は Gmailで試してみることをおススメします。
レンタルサーバの場合、サーバによってはうまく動かない場合がありますので、先に確実に動く Gmailで試してみてからの方が無用な時間を費やすことが減るように思います。
 
 
続いて、メールを送信するユーザの「auth_username」「auth_password」を設定します。
「auth_username」で検索すると分かりやすいでしょう。
Gmailの場合、「auth_username」がメールアドレスで、「auth_password」がそのパスワードになりますので、自分の Gmailの情報を編集します。
 

 
 
さらに、「force_sender」を設定します。
「force_sender」で検索すると分かりやすいでしょう。
 
設定する情報は、先の「auth_username」で設定したメールアドレスを編集します。
 

 
 
 

Apacheを再起動

 
php.iniの設定変更をした場合、その設定変更を反映させるためには Apacheを再起動する必要があります。
 
XAMPPのコントロールパネルの Apacheの「Stop」をクリックして、「Start」をクリックしましょう。
 
XAMPP環境(ローカル環境)の sendmailからPHPメールを送信する設定方法
 
 
 

PHPのサンプルプログラムからメールの送信テスト実施

 
前項までで XAMPPの設定が完了しましたので、正しく設定がされているか、メールをテスト送信するプログラムを実行してテストをします。
 
 

メール送信プログラムを設置

 
下記の内容のプログラムをコピペして作成します。
 

 
ファイルを作成する場所は「C:\xampp\htdocs\testmail.php」になるように設置するといいでしょう。
メールアドレスは、実際に受信できるものに書き換えてください。
 
そして、「http://localhost/testmai.php」にアクセスするとメールのテスト送信処理が実行されます。
 
ブラウザの画面に「送信成功」と表示され、編集したメールアドレスにメールが無事に届いていればテスト送信は成功です。
 
 

メール送信プログラムの不具合の確認

 
テスト送信プログラムを実行し、「送信失敗」となった場合や「送信成功」となるもののメールが届かない場合は、エラーログを確認してみてください。
 
エラーログは下記の場所にあります。(過去にエラーが発生していない場合はエラーログファイルは存在していない場合もあります。)
 
C:\xampp\sendmail\error.log
 
 
また、詳細なデバッグ情報を取得したい場合は、「sendmail.ini」にあるコメントアウトになっている「debug_logfile」のコメントを外してみてください。
 

 
ただし、正常に動作するようになったときは、「debug_logfile」のコメント設定を元に戻しておくことをおススメします。
大量のログファイルが生成されていきますので。
 
 

確認画面付きお問い合わせフォームの作り方

 
また、実際のフォームの作成は「CakePHP 2.3で確認画面付きのお問い合わせフォームの作り方」を参考にしてくださいね。
 
 

sendmailが設定されていない環境からメールを送信する方法

 
XAMPP環境などのローカル環境からメールを送信する方法として、ローカル環境にメール送信の環境を整えるという方法もありますが、ローカル環境の sendmailを使わずにメールを送信する方法もあります。
 
その方法として「Phpmailerでスパム回避!Gmail等のSMTPを経由するPHPのメールフォーム解説」と言う記事を書いていますので参考にしてください。
これは、サーバの sendmailで送るとスパム判定さてしまうので、それの対処方法を書いた記事ではありますが、外部の SMTPサーバを経由してメールを送信する方法ですので、ローカル環境などのメールを送信する環境がないサーバからも送信することが出来る方法になります。
 
 

WordPressからローカルの sendmailを使わずメールを送信する方法

 
今回紹介した内容は、ローカルの XAMPP環境からメールを送信できるようにする設定ですが、WordPressの場合は、プラグインを使うと XAMPP環境の sendmailの設定ができていなくてもメールの送信を行うことができます。
 
そのプラグインは複数あり、WP Mail SMTP、WP SMTP、Easy WP SMTPといったものになりますが、下記にそれらの対応記事を書いていますので、あわせて参考にしてください。
 WP Mail SMTP、WP SMTP、Easy WP SMTPでWordPressのメールのスパム判定を回避

 - システム開発関連技術

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

PHPを勉強するための環境を構築するにはXAMPPが最適

PHPを勉強する環境としてローカル環境を構築するには XAMPPが最適。その解説です。

RSA暗号の仕組みがすっきりと分かった瞬間

RSA暗号の仕組みがすっきりと分かったその説明を交えながら、RSA暗号の解説をします。

Windowsのメモリ不足はUSBメモリに仮想メモリをおいて高速化

Windowsでメモリ不足の時はUSBメモリ上に仮想メモリ(ページングファイル)設定で解決します。

XAMPPの Apacheが起動しなくなった場合の対処方法

ローカルのXAMPP環境で Apacheが起動しなくなる原因の多くはポートのダブり。その対処方法です。

WindowsXPから Windows7にアップグレードして分かったこと

WindowsXPから 7にアップグレードする際に不安だったバックアップ、ドライバ、32Bit版 64Bit版について書いています。

ロリポップで非常に大きなハッキング騒動がありました。

ロリポップで非常に大きなハッキング騒動がありました。その結果、影響を受けた内容と、それに対してどう対応したか、のレポートです。加えて、何でロリポップサーバを使っているかの紹介です。

IEのHTMLソースを秀丸表示で共有メモリへのアクセスが拒否されましたで開けない問題への対処方法

Windows7の IEで HTMLソースを秀丸で表示する際に「共有メモリへのアクセスが拒否されました」のエラーが表示される原因と解決方法の説明。

秀丸の現在開いているファイル名をフルパス付で取得する方法をマクロで作成

秀丸で開いているファイル名をフルパス付で取得するマクロを作成。たった1行のマクロながらとっても便利。プログラムを作る方なら作成して置いて損はないマクロですね。