【PHPMailer】Office365のSMTP経由でメールを送信する
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
PHPで構築したフォーム等から、Office365のSMTP経由でメールを送信する方法のご紹介です。
PHPMailerは昔からある人気のメールライブラリになります。高機能で設定も簡単なので、多くの制作者に利用されています。
私もよく使わせてもらっていましたが、しばらく触らないうちにバージョンが上がり、設定方法も若干変更されていましたので、最新のPHPMailer(6.0.5)での設定方法と、Office365のSMTPを経由してメールを送信する方法をご紹介できればと思います。
本記事の内容
- PHPMailerのダウンロード場所
- PHPMailerの設置方法と読み込み方法
- Office365のSMTP経由でメールを送信する際の設定
では解説していきます。
PHPMailerをダウンロードする
PHPMailerのライブラリは下記のURLからダウンロードすることができます。
リンク先にある緑色の「Clone or download」を選択して「Download ZIP」を選択しましょう。
PHPMailerを設置して読み込む
PHPMailerはダウンロード方法によって読み込み方法が変わってきます。
Web
こちらはWebからダウンロードしたライブラリファイルを使用する方法です。ダウンロードした圧縮ファイルを解凍し、利用するサーバーにFTP等で設置して下記の方法で読み込みます。
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer/src/Exception.php'; require 'PHPMailer/src/PHPMailer.php'; require 'PHPMailer/src/SMTP.php';
Composer
Composerを使用する場合の読み込み方法です。Composerでインストール、読み込む際はこちらの方法で記述します。
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; //Load Composer's autoloader require 'vendor/autoload.php';
Office365のSMTP経由でメールを送信する設定
最後に、PHPMailerを利用するファイルに設定を記述します。下記はWebからダウンロードしたライブラリを利用する方法になります。Composerを使われる場合は読み込み方法を変更しましょう。
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer/src/Exception.php'; require 'PHPMailer/src/PHPMailer.php'; require 'PHPMailer/src/SMTP.php'; $mail = new PHPMailer(true); try { //Office365 認証情報 $host = 'smtp.office365.com'; $username = 'アカウント'; $password = 'パスワード'; //差出人 $from = '差出人メールアドレス'; $fromname = '差出人名'; //宛先 $to = '宛先メールアドレス'; $toname = '宛名'; //件名・本文 $subject = '件名'; $body = '本文'; //メール設定 //$mail->SMTPDebug = 2; //デバッグ用 $mail->isSMTP(); $mail->SMTPAuth = true; $mail->Host = $host; $mail->Username = $username; $mail->Password = $password; $mail->SMTPSecure = 'tls'; $mail->Port = 587; $mail->CharSet = "utf-8"; $mail->Encoding = "base64"; $mail->setFrom($from, $fromname); $mail->addAddress($to, $toname); $mail->Subject = $subject; $mail->Body = $body; //メール送信 $mail->send(); echo '成功'; } catch (Exception $e) { echo '失敗: ', $mail->ErrorInfo; }
最後に
以上、PHPMailerでOffice365のSMTP経由でメールを送信する設定方法のご紹介でした!
高機能で使いやすいライブラリですので、フォームを制作する際にご活用いただればと思います。