【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経由でメールを送信する設定方法のご紹介でした!
高機能で使いやすいライブラリですので、フォームを制作する際にご活用いただればと思います。