XAMPP環境でPHPを使ってメールを送れるようにするSMTPサーバーの設定方法
こういうエラーに対処できる
Failed to connect to mailserver at "localhost" port 25
1.sendmail.exeを手に入れる
まずは各自のxampp
ディレクトリにsendmail
ディレクトリがあるか確かめる。
なかった場合、xampp
ディレクトリ直下にsendmail
ディレクトリを作成。
fake sendmail for windowsからsendmail.zip
をダウンロードし、解凍してsendmail.exe
などのzip
ファイル内のすべてのファイルを~\xampp\sendmail
ディレクトリに移す。
2.php.iniを編集する
作成した~\xampp\sendmail
ディレクトリの内容をXAMPP
やPHP
に読み込ませるために、~\xampp\php\php.ini
を編集する。
[mail function]
; For Win32 only.
; http://php.net/smtp
; SMTP=localhost
; ↑コメントアウト
; http://php.net/smtp-port
; smtp_port=25
; ↑コメントアウト
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"~\xampp\sendmail\sendmail.exe\" -t"
; ↑コメントアウトを外して、sendmail.exeのパスと-tを追加する。
3.sendmail.iniを編集する(Gメール版)
今度は~\xampp\sendmail\sendmail.ini
に実際に送信するメールの設定などを追加していく。
今回はGメールのメールアドレスを使用する際の設定。
smtp_server=smtp.gmail.com
; ↑smtp.gmail.comを設定
; smtp port (normally 25)
smtp_port=587
; ↑ここは587を設定
; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL
smtp_ssl=auto
; ↑autoになっていなかったらautoにする
; /*中略*/
;debug_logfile=debug.log
; if your smtp server requires authentication, modify the following two lines
auth_username=[email protected]
; ↑Googleアカウントのメールアドレス
auth_password=password
; ↑Googleアカウントのパスワードでない、別に発行されたパスワードであるアプリパスワードを記入
; 4.アプリパスワードの発行で解説
; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines. do not enable unless it is required.
pop3_server=
pop3_username=
pop3_password=
; force the sender to always be the following email address
; this will only affect the "MAIL FROM" command, it won't modify
; the "From: " header of the message content
force_sender=[email protected]
; ↑Googleアカウントのメールアドレス
4.アプリパスワードの発行
Gメールを使ってメールを送信する際、アプリパスワードが必要になる。
このパスワードは二段階認証の代わりとして使用され、このパスワードが外部に漏れてもアカウントが特定されないようにするためのもの。
ここでは、そのアプリパスワードの発行方法を説明する。
- Googleアカウントのセキュリティから
アプリパスワード
を選ぶ。 - パスワードを入力し、本人確認を終えたら、
アプリの選択
をクリックしその他(名前の入力)
を選ぶ。 -
SMTP
などの名前を付けて、生成
をクリック。 -
お使いのデバイスのアプリ パスワード
の下にある黄色い枠に囲まれた16文字がアプリパスワード。 - そのアプリパスワードをコピーして、
sendmail.ini
に貼り付ける。
[email protected]
auth_password=【アプリパスワード】
5.テスト
以上でメール送信に必要な設定は完了したため、ここではテストを行う。
PHP
にはmb_sendmail()
関数があるため、それだけのPHPファイルを作成し、コマンドプロントなどから実行して、実際にメールが送られるか確かめる。
<?php
mb_send_mail('送信先メールアドレス', '件名', '本文', 'From:[email protected]');
// $ php mail_test.php
// ↑コマンドプロントでの操作
?>
参考資料
Author And Source
この問題について(XAMPP環境でPHPを使ってメールを送れるようにするSMTPサーバーの設定方法), 我々は、より多くの情報をここで見つけました https://qiita.com/kaitaku/items/58d772f5bf441fe86c08著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .