こんにちは、Ryohei(@ityryohei)です!

PHPで構築したフォーム等から、Office365のSMTP経由でメールを送信する方法のご紹介です。

PHPMailerは昔からある人気のメールライブラリになります。高機能で設定も簡単なので、多くの制作者に利用されています。

私もよく使わせてもらっていましたが、しばらく触らないうちにバージョンが上がり、設定方法も若干変更されていましたので、最新のPHPMailer(6.0.5)での設定方法と、Office365のSMTPを経由してメールを送信する方法をご紹介できればと思います。

本記事の内容

  • PHPMailerのダウンロード場所
  • PHPMailerの設置方法と読み込み方法
  • Office365のSMTP経由でメールを送信する際の設定

では解説していきます。

PHPMailerをダウンロードする

PHPMailerのライブラリは下記のURLからダウンロードすることができます。

PHPMailer

リンク先にある緑色の「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経由でメールを送信する設定方法のご紹介でした!

高機能で使いやすいライブラリですので、フォームを制作する際にご活用いただればと思います。

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。