XAMPP(Windows版)で、Gmail経由でローカル環境からメールを送信する

最終更新: 2018-08-18

Googleアカウントの設定

メール送信に使いたいGoogleアカウントでログインし、下記のページを開きます。
https://myaccount.google.com/lesssecureapps


「安全性の低いアプリの許可」を有効にします。


XAMPPの設定

対応バージョン

下記の設定ファイルを書き換えた後、Apacheを再起動すればOKです。

xampp\php\php.ini

[mail function]
; 下記の設定はそのままでよい。
SMTP=localhost
smtp_port=25

; sendmail_path を下記の値にする。
; sendmail_path の項目が存在しなければ、
; [mail function] の章内に作成する。
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

🔗 メール関連の php.ini の設定


xampp\sendmail\sendmail.ini

; 下記の値にする
smtp_server=smtp.gmail.com

smtp_port=587

auth_username=(Googleのメールアドレス)
auth_password=(Googleのパスワード)

🔗 Gmail のSMTPの設定


なお、GmailだけでなくYahoo!メールでも可能です。



smtp_server=smtp.mail.yahoo.co.jp

smtp_port=465

auth_username=(Yahooのユーザ名 「@yahoo.co.jp」は不要)
auth_password=(Yahooのパスワード)

🔗 YahooメールのSMTPの設定

送信できるか確認する
下記のPHPを実行して、メールが届くかどうか確認します。

<?php
$from = '(送信元のメールアドレス)';
$to = '(送信先のメールアドレス)';
$subject = '件名: テスト送信';
$message = <<< EOF
{$from}より。

こんにちは。
これはテスト送信です。
EOF;

if (mb_send_mail($to, $subject, $message, "From: {$from}")) {
echo '送信成功。';
} else {
echo '送信失敗。<br>エラーログを確認してください。 (xampp\sendmail\error.log)';
}

🔗 mb_send_mail() の説明


古いXAMPPの設定

対応バージョン

xampp\php\php.ini

SMTP = smtp.gmail.com

smtp_port = 587

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

xampp\sendmail\sendmail.ini
下記の全てを追加します。

# gmail
account gmail
tls on
tls_certcheck off
host smtp.gmail.com
port 587
from (Googleのメールアドレス)
auth on
user (Googleのメールアドレス)
password (Googleのパスワード)

# Set a default account
# ここだけはデフォルトの"Mercury"から書き換えます
account default : gmail

代替手段: swiftmailer

Composerを使っているのなら、sendmailよりもswiftmailerの方が融通が効くのでおすすめです。
swiftmailerでメールを送る (Gmail, Yahoo!メール経由) - Qiita

ただし、sendmailの使用を前提としているプログラムでは使えません。
(WordPressContact Form 7など)