PHPを使ってメールの送信をしてみたい。
でも、サーバを借りていないので、調べたやり方ではエラーが出る。
自分のgmailを使って送信するようにしたい人のために
XAMPPを使って外部メールサーバ(今回はgmail)からメールを送るための設定方法とメール送信のテストまでをやってみたいと思います。

以下、XAMPPのフォルダが「C:\xampp」にある前提での説明となります。
今回編集するのは2つのファイル、

  • C:\xampp\php\php.ini
  • C:\xampp\sendmail\sendmail.ini
  • になります。

    php.iniの設定

    まずは
    「C:\xampp\php\php.ini」からです。
    2000行近くあるファイルですが、今回編集するのは
    [mail function]と書かれている場所です。
    エディタで開いて「mail function」等で検索すれば場所がわかると思います。
    修正する個所は以下のようになっています。(人によって違うと思います)

    修正するのは
    「sendmail_path =」の行です。
    まずはコメントアウトを解除するため「;」を消し、
    「”\”自分のsendmail.exeの場所” -t”」を指定します。
    sendmail.exeは「php」のフォルダと同列にある「sendmail」というフォルダの中にあります。
    私の環境ですと、以下のようになっています。

    このパスを
    上記のとおりに「sendmail_path = 」で指定します。
    修正後は以下のようになると思います。

    これでphp.iniの設定は終わりです。

    sendmail.iniの設定

    次に「C:\xampp\sendmail\sendmail.ini」を編集していきます。
    中は70行くらいで以下の内容になっています。

    ここで、自分のgmailの設定をしていきます。
    編集するのは以下の5つです。

    • smtp_server
      • メールサーバ名。今回はgmailなので「smtp.gmail.com」
    • smtp_port
      • メールの送信ポート。詳しい説明は省きますが迷惑メール対策などがあるため「587」を指定
    • auth_username
      • 使いたい送信元のユーザ名。今回はgmailなのでユーザ名=メールアドレスのため、送信元のメールアドレスを指定。
    • auth_password
      • 使いたい送信元のパスワード
    • force_sender
      • 使いたい送信元のメールアドレス

    例えば、使いたいgmailアドレスがtest-mail@gmail.comで、パスワードがpaswordであれば、
    smtp_server=smtp.gmail.com
    smtp_port=587
    auth_username=test-mail@gmail.com
    auth_password=pasword
    force_sender=test-mail@gmail.com

    となります。

    以上で、sendmail.iniの設定は終わりになります。

    メール送信の確認

    では実際にメール送信が出来るかを確認していきます。
    まず、上記の設定を反映させるためにApacheを再起動します。
    Apacheの再起動をしないと設定が反映されないので忘れず行ってください。
    XAMPPのコントロールパネル(起動した時のウィンドウ)でApacheを「Stop」して「Start」すればOKです。

    次にメール送信のプログラムを作ります。
    今回、プログラムの場所はhtdocsの中に「mail」というフォルダを作り、その中にtest.phpを作成します。(C:\xampp\htdocs\mail\test.php)
    以下のプログラムで、送信先を自分の試したいメールアドレスに変更してください。

    作成出来たら、プログラムを実行します。
    実行方法は、ブラウザからこのプログラムを開くだけです。
    同じフォルダ構造で作成していれば以下のリンクで実行できます。
    http://localhost/mail/test.php

    自分のgmailアカウントの設定次第では、失敗が出るかと思います。
    知らない場所から勝手にgmailを使いメールを送信させようとしているのでエラーが出ます。
    エラーは送り元のgmailにメールで届くと思います。
    こんな感じです。

    今回は、テストで確認しているだけですし、自分で作ったプログラムなので危険ではないので、
    一旦、アクセスを許可して試してみましょう。(一時的にではありますが、セキュリティを緩めるので脆弱性が高まります。あくまで自己責任でお願い致します。)
    ちなみに、ここまでできている場合は、PHP(XAMPP)から自分のgmailへのアクセスは出来ている証拠です。

    安全性の低いアプリの許可を有効にし、先ほどのプログラムを試してみましょう。
    タイムラグなどがあるため、それでも失敗する場合は少し時間を置いたり、何度か試してみましょう。

    成功と画面で確認出来ましたら、安全性の低いアプリの許可を無効に戻しておきましょう。

    以上で、XAMPPのローカル環境上でPHPを使って自分のgmailからメール送信の確認は終わりです。


    1件のコメント

    ウェブカツ!!女性割引でプログラミング(4ヶ月経過) | rukaの独り言 · 2019-11-30 22:28

    […] 東京消息【XAMPP】mailtodisk.exeを使ってphpのmb_send_mailをテストする時の設定方法CroughtBlog【PHPでメール送信】XAMPPのローカル環境上でPHPを使って自分のgmailからメー… […]

    ウェブカツ!!女性割引でプログラミング(4ヶ月経過) | rukaの独り言 にコメントする コメントをキャンセル

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