技術メモ

【2022年版】XAMPPのローカル環境でメールを送信する方法

2022年8月17日

xampp

 

どうも、白夜霧(@KiRi_Byakuya)です。

 

今回は、xamppで構築したローカル環境から、PHPでメールを送信する方法の覚書です。

 

誰かの参考になれば幸いですm(_ _)m

 

 

開発環境 / xamppのローカル開発環境でメールを送信する方法

プログラミング,パソコン,仕事

 

本記事では、下記の環境で確認しています。

  • Windows 11 Home
  • XAMPP(Apache + MySQL + PHP)

 

本記事ではWindows環境を前提としています。

 

準備するもの / xamppのローカル環境でメールを送信する方法

メモ,実験,勉強,推理

 

必要なモノ

  • xamppがインストールされている環境
  • 送信用のメールアドレス

 

XAMPP(ザンプ)については、下記記事を参考にして下さい。

xampp
【2022年版】Windowsに『XAMPP』をインストールする方法と最低限の設定【無料】

Windowsに「XAMPP」をインストールするための手順と最低限の設定の覚書。

続きを見る

 

なお、本記事では送信用のメールアドレスに「Gmail」を使用します。

 

Yahoo!メールやOutlookなど、その他フリーのメールアドレスを利用する場合は、設定内容が微妙に異なるので注意して下さい。

 

 

xamppのローカル環境でメールを送信する方法と手順

コード,Programming,プログラミング

 

KiRi

設定ファイル(.ini)を編集するので、xamppは停止状態でOK。

 

ステップ1:Googleのアプリ用パスワードを発行する。

セキュリティ

 

Gmailを使用する場合、使用するGmailのアカウント側で「アプリ用パスワード」を発行する必要があります。

 

また、このパスワードの発行は、Googleアカウントの「2段階認証を有効」にしないと設定できません。

 

昔は2段階認証に関係なくできたらしいですが、今は2段階認証有効が必須みたい。

 

とりあえず、二段階認証が無効になっている人は、Googleアカウントページの「セキュリティ」から有効にして下さい。

xamppのローカル環境でメールを送信する方法と手順

 

有効にすると、下記のようになりパスワードの発行が可能になります。

xamppのローカル環境でメールを送信する方法と手順

 

パスワードの発行は、同じくアカウントページの「セキュリティ」→「Googleへのログイン」→「アプリパスワード」をクリック。

xamppのローカル環境でメールを送信する方法と手順

 

アプリを選択」と「デバイスを選択」して、生成を押せばパスワードが発行されます。

xamppのローカル環境でメールを送信する方法と手順

 

生成されたパスワードが表示されたら、必ず何らかの形で保存して下さい。

xamppのローカル環境でメールを送信する方法と手順

 

KiRi

後からパスワードを再確認する方法はない?みたいなので要注意

 

  • アプリを選択」と「デバイスを選択」はあくまで『任意の名前』用なので、適当でいいっぽい。
  • 生成したパスワードの削除、及び再作成はすぐにできるのでご安心を。

 

KiRi

私は「アプリを選択」で「その他」→「xampp」と入力してパスワードを生成しました。

 

ステップ2:xampp側の設定を変更する

確認:XAMPPでApacheのダッシュボードとphpinfoを開く

 

php.ini」を編集して、設定を変更します。※Apacheは停止して下さい。

 

php.iniは各OSによって保存場所が異なります。※下記はxamppのデフォルト設定

OSファイルの位置
WindowsC:\xampp\php\php.ini
Mac/Applications/XAMPP/xamppfiles/etc/php.ini
Linux/opt/lampp/etc/php.ini

 

php.ini」の1085行目あたりにある [mail function] の『sendmail_from』と『sendmail_path』を下記のように変更して保存。


; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = "hogehoge@gmail.com"

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

 

xamppのローカル環境でメールを送信する方法と手順

 

さらに詳しく

詳細は「PHPマニュアル メール関連の実行時設定」を参照

  • sendmail_from:SMTP 経由で直接送信されるメールにおいて "From:" に使用するメールアドレスを指定します(Windows環境のみ)
  • sendmail_path:sendmail プログラムを探すパスを指定します。 

 

sendmailのコマンドラインオプション(-t -i)については下記を参照。

 

次に「sendmail.ini」を変更します。ファイルの場所はWindowsの場合「C:\xampp\sendmail\sendmail.ini」。

xamppのローカル環境でメールを送信する方法と手順

 

sendmail.ini」を開き、各設定を変更して保存。※下記はGmail向けの設定です。


;Gmail
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
auth_username=hogehoge@gmail.com
auth_password=hogehogehogehogehoge

 

「auth_username」は、送信用のメールアドレス。「auth_password」は、ステップ1で発行したアプリ用のパスワードです。

 

各メールサービスごとの設定は、各ヘルプ記事を確認して下さい。

 

KiRi

サービス名 + smtp」で検索すれば、大体の情報は出てきます。

 

 

ステップ3:サンプルプログラムで実際にメールを送信する

メール,gmail,手紙

 

xamppのapatchを起動し、ドキュメントルートに下記を記述したPHPファイルを作成。


<?php
mb_language("Japanese");
mb_internal_encoding("UTF-8");

$to = "send_to_address@gmail.com"; // 送信先のアドレス
$subject = "テスト送信"; // 件名
$message = "ただいまメールのテスト中です。"; // 本文
$additional_headers = ""; // ヘッダーオプション

if(mb_send_mail($to, $subject, $message, $additional_headers))
{
	print "メールを送信しました。";
}
else
{
	print "メール送信に失敗しました。";
}

 

メールを送信する関数「mb_send_mail」については下記を参照。

 

上記サンプルでは「Fromヘッダ」は省略しています(※php.iniでデフォルト値を設定しているため)。詳細は「additional_headers(オプション)」を参照。

 

上記PHPファイルをブラウザ経由で実行して「メールを送信しました。」が表示されれば、メールの送信が成功です。

xamppのローカル環境でメールを送信する方法と手順

 

受信したメールはこんな感じ。

xamppのローカル環境でメールを送信する方法と手順

 

CCやBCCの追加方法

additional_headers」に下記のように追加すれば、CCやBCCを追加可能です。


<?php

// From:のみ ※CC & BCCなし
$additional_headers = "From: hogehoge@gmail.com";

// CCあり
$additional_headers = "From: hogehoge@gmail.com\r\nCc: cc@example.com";

// CC + BCCあり
$additional_headers = "From: hogehoge@gmail.com\r\nCc: cc@example.com\r\nBcc: bcc@example.com";

 

以上、有難うございましたm(_ _)m

 

参考になったらポッチとお願いしますm(_ _)m


プログラムランキング

  • この記事を書いた人

白夜霧

現役のIT土方・社畜・カフェイン中毒者。趣味のために生きる。サラリーマンの雑記ブログ。さり気なくYouTuberデビューしました\(^o^)/

-技術メモ
-, ,

© 2022 My,WebNote - 備忘録 -