noshi’s diary

ゲームの事、映画やドラマ、思いついた事、プログラミングの事、雑記的なことを書いています

【XAMPP】ローカル環境からSMTPでメール送信するまでにやったこと

f:id:noshigames:20191010014254j:plain

おはこんばんちは。noshiです。

今回はXAMPPのsendmailを使ってGmailでメール送信するまでにやったことを備忘として残しておきます。

 

大まかな流れは以下のとおりです。

  1. sendmail.iniの設定
  2. php.iniの設定
  3. メール送信用の簡易プログラムの実行

 

1 sendmail.iniの設定

私がインストールしたXAMPPにはsendmailのフォルダがなかったので、個別にsendmailをダウンロードしてインストールしました。

https://www.glob.com.au/sendmail/

f:id:noshigames:20191010010243j:plain

 

zipファイルをダウンロードして解凍。解凍したフォルダの中身を確認すると、sendmail.iniがあります。このファイルを修正するので一応sendmail_bk.iniというファイル名でバックアップしておきました。

f:id:noshigames:20191010010418j:plain

 

そして、sendmailのフォルダごと、XAMPPの直下に置きます。

f:id:noshigames:20191010010443j:plain

 

さきほどのsendmail.iniのファイルをテキストエディタで開きます。

そして、以下の箇所を変更していきます。

 

smtp_server=smtp.gmail.comに。

f:id:noshigames:20191010010835j:plain

 

smtp_portは587に。

f:id:noshigames:20191010010912j:plain

 

・auth_username & auth_passwordを入力。ここはメール送信元のメールアドレス&パスワードとなります。

f:id:noshigames:20191010011143j:plain

 

・force_senderは送信元のメールアドレスに。

f:id:noshigames:20191010011317j:plain

 

sendmail.iniの設定は以上です。

 

 

2 php.iniの設定

php.iniをテキストエディタで開きます。これも一応php_bk.iniとかでバックアップしておきました。

 

これがデフォルトのものです。

f:id:noshigames:20191010005738j:plain

 

上の画像を下のように変更します。

f:id:noshigames:20191010005914j:plain

変更した点は、一番下のsendmail_pathのところだけです。

sendmail.exeまでのpathを書いて、「-t」「-i」のオプションを設定します。

pathは環境によって異なりますので、環境に合わせてください。

 

php.iniの設定は以上です。

 

ここまで設定したら、XAMPP Control Panel で Apache の再起動しておきます。

 

3 メール送信用の簡易プログラムの実行

 

ここで以下のような簡易メール送信プログラムで実行してみました。

これをtestmail.phpとかにして、htdocs内に保存して、ブラウザから直接アクセスします。test@gmail.comのところは、テストで適当にしていますが、ここは私が送信したいメールアドレスを設定しました。

if (mb_send_mail('test@gamail.com', 'メールタイトル', 'メール本文')) {
    echo '送信成功';
} else {
    echo '送信失敗';

 

私の場合は、送信失敗でした・・・。

 

エラーログを見ると、どうやら認証で失敗しているようです。

Googleアカウントのセキュリティ設定で引っかかっているようでしたので、安全性の低いアプリのアクセスを有効にしてみました。ちなみになんですが、二段階認証をしていると、Googleアカウントの設定のところで、安全性の低いアプリのアクセスという表示は出ませんでしたので、二段階認証を無しにしたら、この表示が出たので、二段階認証はオフにする必要がありそうです。

 

その後、再度、さきほどのメール送信プログラムを実行しましたところ、無事送信できました。

 

今回はXAMPPにsendmailが無かったので、個別に入れる方法が分からず困りましたが、なんとか送信できてよかったです。

 

今回は以上となります。最後までありがとうございました。