Mailtrap & PHPMailerでメールサーバ無しの環境でもメール送信テストを行う方法
開発環境等メールサーバが無い環境でメール送信テストを行う際にMailtrapというサービスを使うと良いと聞いた。どんなものか調べてみたところSMTPサーバ及び受信ボックスを用意してくれるサービスというもの。実際にどのような感じが試してみたいのでPHPMailerを使って送信テストする方法をメモ。
Mailtrapの準備
公式サイト
公式サイト右上の「Sign UP」からアカウント登録しログインすること。
PHPMailer用のソースをコピー
ログイン後、左側メニューの「Email Testing→Inboxes」に進み「Integrations」プルダウンで「PHPMailer」を選択するとPHPMailer用のソースが表示されるので「Copy」ボタンをクリックしてコピーしておく。
PHPMailerの準備
PHPMailerの用意
今回はcomposerは使わず以下からダウンロードした。
https://github.com/PHPMailer/PHPMailer
zipファイルを解凍後に以下3ファイルをアップロードする。
- PHPMailer.php
- Exception.php
- SMTP.php
ソースコード
<?php include('./PHPMailer.php'); include('./Exception.php'); include('./SMTP.php'); date_default_timezone_set('Asia/Tokyo'); mb_language("japanese"); mb_internal_encoding("UTF-8"); $phpmailer = new PHPMailer\PHPMailer\PHPMailer(); $phpmailer->isSMTP(); $phpmailer->Host = 'sandbox.smtp.mailtrap.io'; $phpmailer->SMTPAuth = true; $phpmailer->Port = 2525; $phpmailer->Username = 'xxxxxxxxx'; $phpmailer->Password = 'xxxxxxxxx'; $phpmailer->setFrom('from@test.com'); $phpmailer->addAddress('to@test.com'); $phpmailer->CharSet = 'UTF-8'; $phpmailer->Subject = 'メールのタイトル'; $phpmailer->Body = 'メールの本文'; if( !$phpmailer->Send() ){ echo "送信失敗<br/ >"; echo "エラー内容: " . $phpmailer->ErrorInfo; } else { echo "送信成功"; }
「Host / Port / Username / Password」は先ほどコピーしたソースコードのものを使うこと。
尚、送信成功するとMailtrapに以下のように表示される。
所感
送信テストの際、今までは自前のメールアドレスで受信しており、テストメールを毎回削除するのが地味に面倒だったがその辺りも解決できそう。
もちろん本番環境だとちゃんと送信テストを行う必要はあるもののテスト環境の場合はこのような方法もありだと思った。
関連記事
-
SendGridを使ってメールサーバを構築せずにPHPからメールを送信する方法
メールサーバを構築せずに独自ドメインのメールアドレスにてメール送信を行いたい。過 ...
-
PHPMailerでエラーメッセージ及びデバッグログの表示方法について
PHPMailerでエラーメッセージ及びデバッグログを表示させたいというケースが ...
-
PHPでメール送信時に返信先(Reply-To)を指定する方法
PHPにてメールを送信し、そのメールに対して返信しようとすると通常は送信元のメー ...
-
PHPでファイルを添付してメールを送信する方法(PHPMailer)
PHPでファイルを添付の上、メールを送信したかった。方法を探したところphpma ...
-
PHPMailerを使ってメールをSMTP送信する方法(Composer無し)
PHPでメールをSMTP送信したかった。また、レンタルサーバだったのでCompo ...