私はあまりWindowsのサーバには詳しくありません。
一般的によく利用されるWindows用のMTAサーバが存在するのか?
あまり真剣に調べるほど本格的な利用をする予定もありませんので
開発用に簡易的なメール送信ができればOKなんです。
ということで、WindowsのXAMPP-7.2のPHPから簡易的にメール送信できる方法をご紹介します。
使用するアプリケーションは、「fake sendmail for windows」と「Gmail」です。
- fake sendmail for windows
https://www.glob.com.au/sendmail/
SMTPサーバにデータを渡すプログラムです。
- Gmail
https://www.google.com/gmail/
メールを送信する部分を担当します。
Googleアカウントが必要ですので、所有していない場合は取得が必要です。
※ 送信元と送信先が同じGmailになる場合は、2つのGmailアカウントを用意することをお奨めします。
Sendmail の設定
途中で設定内容を失敗した場合にも元ファイルをコピーしておくと便利です。
sendmail.ini → sendmail.ini.org
V:\PortableApps.com\PortableApps\xampp-7.2.15\sendmail\sendmail.ini
↓ ファイルをコピーしてバックアップする
V:\PortableApps.com\PortableApps\xampp-7.2.15\sendmail\sendmail.ini.org
sendmail.ini を編集する
V:\PortableApps.com\PortableApps\xampp-7.2.15\sendmail\sendmail.inisendmail.ini
#-----★ GmailのSMTPサーバへ変更
smtp_server=mail.mydomain.com
↓ 変更する
smtp_server="smtp.gmail.com"
#-----★ サブミッションポートへ変更 (465, 587)
smtp_port=25
↓ 変更する
smtp_port=465
#-----★ エラーログ (デフォルトではログ保存が有効になっている)
# ログを残す必要がある場合はスルーしてください
error_logfile=error.log
↓ コメントアウトする
;error_logfile=error.log
#-----★ 送信者用のGmailアカウント名を設定
auth_username=
↓ 変更する
auth_username="例:from@gmail.com"
#-----★ 送信者用のGmailパスワードを設定
auth_password=
↓ 変更する
auth_password="例:password"
#-----★ 送信者を強制(固定のメールアドレスが送信元となる)する
# Gmailの場合は、送信者用Gmailアカウント
force_sender=
↓ 変更する
force_sender="例:from@gmail.com"
#-----★ 受信者を強制(固定のメールアドレスが送信先となる)する
# Gmailの場合は、受信者用Gmailアカウント
force_recipient=
↓ 変更する
force_recipient="例:to+force_recipient@gmail.com"
PHPの設定
※ 必要ならば、php.ini のファイルをバックアップします。php.ini は下記のパスに設置してあるものとして説明します。
V:\PortableApps.com\PortableApps\xampp-7.2.15\php\php.ini
↓ ファイルをコピーしてバックアップする
V:\PortableApps.com\PortableApps\xampp-7.2.15\php\php.ini.bak
V:\PortableApps.com\PortableApps\xampp-7.2.15\php\php.ini のファイルを開いて、編集します。
sendmail_path に sendmail.exe のパスを指定します。
php.ini
;sendmail_path =
↓ コメントアウトを外して、変更する
sendmail_path = "\"\PortableApps.com\PortableApps\xampp-7.2.15\sendmail\sendmail.exe\" -t"
Apache を再起動
php.ini の設定を変更したので、Apacheの再起動が必要です。XAMPP-7.2.15のApacheを再起動します。
送信テスト
実際に、XAMPP-7.2.15のPHPからメール送信してみます。下記のコードをそのままコピーして利用すればOKです。
実際の送信先メールアドレスは、「sendmail.ini」に設定したアドレス宛になります。
任意の場所に下記のコードを配置して、実行してください。
設置例
(1) 下記にPHPのファイルを作成します。中身は、下記のPHPコードをコピーして、書き込みます。
V:\PortableApps.com\PortableApps\xampp-7.2.15\htdocs\sendmail.php
(2) WebブラウザからPHPを実行
Webブラウザのアドレスに http://localhost/sendmail.php を入力し、アクセスします。
送信完了が表示されれば、成功です。
XAMPP-7.2.15のPHP 送信テスト
<?php
if (mb_send_mail('user@example.com', '題名:テスト', '本文:テスト')) {
echo "送信完了";
} else {
echo "送信失敗";
}
メール受信に関して
Gmailのメール受信にメーラーを使用する場合は、セキュリティの設定を変更しないと受信できない場合があります。
設定方法は、他の解説サイトなどを参考にしてください。
ここでは省略します。
fake sendmail for windows の設置
このパートは読み飛ばして結構です。
これは、予備情報として記載しています。
これは、予備情報として記載しています。
XAMPP-7.2には、Windows用の「sendmail」が同梱されています。
ですので、基本的に設置は不要です。
ですので、基本的に設置は不要です。
同梱されている「sendmail」が機能しなくなった場合に、下記からダウンロードしてください。
Linux用の「sendmail」とは機能が少し違いますが、開発用としてはこれで十分だと思います。
ダウンロード
fake sendmail for windows の最新版をダウンロードします。http://www.glob.com.au/sendmail/sendmail.zip
上記でダウンロードできない場合は、こちらから探してください。
http://glob.com.au/sendmail/
設置
ダウンロードした「fake sendmail for windows」を解凍して、任意の場所に設置します。普通に解凍すると「sendmail」のフォルダがあるはずです。
そのフォルダ「sendmail」を任意の場所に置きます。
設置例
V:\PortableApps.com\PortableApps\xampp-7.2.15\sendmail
以上で、XAMPP-7.2.15のPHPからのメール送信する方法でした。
0 件のコメント:
コメントを投稿