php ライブラリ「PHPMailer」を使ってメールを送信する

php ライブラリ「PHPMailer」を使ってメールを送信する

phpでライブラリ「PHPMailer」を使ってメールを送信するまでのサンプルコードを記述してます。composerを使用して「PHPMailer」はインストールしてます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • PHP 7.4.5
  • Composer 1.10.5

※windows10にApacheのインストールはこちら
※windows10にphpのインストールはこちら
※Windows10にComposerのインストールはこちら

phpmailer/phpmailerインストール

phpが動作しているフォルダで、composerを使用してインストールします。

composer require phpmailer/phpmailer

<出力結果>
Using version ^6.1 for phpmailer/phpmailer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing phpmailer/phpmailer (v6.1.6): Downloading (100%)
phpmailer/phpmailer suggests installing league/oauth2-google (Needed for Google XOAUTH2 authentication)
phpmailer/phpmailer suggests installing hayageek/oauth2-yahoo (Needed for Yahoo XOAUTH2 authentication)
phpmailer/phpmailer suggests installing stevenmaguire/oauth2-microsoft (Needed for Microsoft XOAUTH2 authentication)
Package mschop/noteephp is abandoned, you should avoid using it. Use mschop/notee instead.
Writing lock file
Generating autoload files
20 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

自分の場合は、下記にインストールしました。

phpmailer/phpmailer利用

「C:\Apache24\htdocs」に「test.php」を下記のコードで作成します。

<?php
//エラーを表示する
ini_set('display_errors', "On");

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require_once __DIR__ . '/vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    //メールサーバー設定
    // デバック
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      
    // SMTPの使用
    $mail->isSMTP();
    // smtpサーバー設定
    $mail->Host       = 'host.mebee.info';
    // SMTP認証                  
    $mail->SMTPAuth   = true;
     // SMTP ユーザー                                
    $mail->Username   = 'test@mebee.info';
    // SMTP パスワード                   
    $mail->Password   = 'Password';
    // ポート設定                           
    $mail->Port       = 587;                                    

    //送信アドレス
    $mail->setFrom('test@mebee.info', 'mebee');
    //宛先
    $mail->addAddress('test@mebee.info', 'mebee');
    //cc    
    $mail->addCC('test@mebee.info');
    //bcc
    $mail->addBCC('test@mebee.info');

    // htmlメール指定
    $mail->isHTML(true);
    //件名
    $mail->Subject = 'Here is the subject';
    //内容
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';    

    //メール送信
    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

実行結果を確認すると、メールが送信されていることが確認できます。