概要
今回はPHPMailerを使用して、PHPで簡単にメール送信処理を実装する方法を紹介します。
前提
テキストエディタはVisual Studio Code(以降「VSCode」と呼ぶ)を使用します。
インストールしていない方は以下のサイトからダウンロードし、インストールをお願いします。
https://code.visualstudio.com/download
また、今回はMacでの操作方法になるためWindowsの方とは若干操作等異なるかもしれません。
予めご了承ください。
PHPMailerの導入
PHPMailerとはPHPのライブラリで、SMTPサーバーを利用してメールを送信することができます。
まずはライブラリファイルをダウンロードします。以下にアクセスします。
https://github.com/PHPMailer/PHPMailer
「Code」をクリックして「Downliad ZIP」を選択してダウンロードを行います。
ダウンロードして解凍したら、「PHPMailer-master」のフォルダがあると思いますので、このフォルダをそのまま作業フォルダ(PHPファイル等配置されている場所)に配置してください。
※お好みでフォルダ名を「PHPMailer-master」→「PHPMailer」に変更しても良いと思います。
実装
PHPMailerを導入できたら、コードを書いていきましょう。
環境構築がまだの方は、別記事でXAMPPを使った開発環境構築方法を紹介していますので参考にしていただければと思います。
コードは以下のようになります。
PHP サンプル
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require("./PHPMailer/src/PHPMailer.php");
require("./PHPMailer/src/Exception.php");
require("./PHPMailer/src/SMTP.php");
// 文字コード
mb_language("Japanese");
mb_internal_encoding("UTF-8");
//インスタンス
$mail = new PHPMailer(true);
try {
// 認証設定
$mail->isSMTP();
$mail->Host = 'hostname';
$mail->Username = 'username';
$mail->Password = 'password';
// 文字コード
$mail->CharSet = "UTF-8";
// 認証、暗号化、ポート番号
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
// 宛先、内容等設定
$mail->setFrom('送信元メールアドレス');
$mail->addAddress('送信先メールアドレス');
$mail->Subject = '件名';
$mail->Body = 'メッセージ本文';
// 送信
$mail->send();
echo "正常に送信されました";
} catch (Exception $e) {
// エラーの場合
echo "送信に失敗しました : {$mail->ErrorInfo}";
}
解説
インポート
先ほどダウンロードしたライブラリをインポートしています。
よくわからんという方は、PHPMailerを使う上でのおまじないみたいなものだと思っていただければ大丈夫です。
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require("./PHPMailer/src/PHPMailer.php");
require("./PHPMailer/src/Exception.php");
require("./PHPMailer/src/SMTP.php");
認証設定
SMTPサーバー(ホスト)名、ユーザー名、パスワードを入力します。
$mail->isSMTP();
$mail->Host = 'hostname';
$mail->Username = 'username';
$mail->Password = 'password';
SMTP認証を有効
SMTPAuthをtrueに設定することで有効化にします。SMTP認証とは簡単言うとユーザーの認証(確認)です。
$mail->SMTPAuth = true;
暗号化を有効
今回はSSLを指定してしますが、TLSの場合は ‘tls’ を設定してください。
$mail->SMTPSecure = 'ssl';
メールの設定
送信元と送信先のメールアドレス、件名やメール内容を設定します。
$mail->setFrom('送信元メールアドレス');
$mail->addAddress('送信先メールアドレス');
$mail->Subject = '件名';
$mail->Body = 'メッセージ本文';
以上でメール送信処理の実装は完了です。お疲れ様でした!
別記事でメール送信の動作確認方法を紹介していますのでご参考までに。