このエントリーをはてなブックマークに追加


PHPMailerを使ってみる

PHPMailerのサンプルソースを公開しています。
PHP標準のmail関連の関数だと、SMTPを使ったメール送信ができませんよね。
定番と言われている PHPMailer を使ったサンプルソースを公開しました。

環境は Debian、 Ubuntu で動作確認をしました。
PHPMailer は提供されているパッケージを apt コマンドでインストールしました。

動作確認環境

  • ebian GNU/Linux 11 (bullseye)
  • Ubuntu 22.04.1 LTS (jammy)
  • Raspbian GNU/Linux 11 (bullseye)

php-cliをインストールしコマンドとして実行

環境構築

以下のコマンドで、パッケージをインストールすれば動作確認をすることができます。

sudo apt install php-cli php-mbstring libphp-phpmailer

各パッケージの説明

以下に今回動作させるために必要なパッケージを紹介します。

PHPMailerサンプルソース

PHPMailerのサンプルソースになります。

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'libphp-phpmailer/autoload.php';
require 'libphp-phpmailer/language/phpmailer.lang-ja.php';

//mb_language("japanese");
//mb_internal_encoding("UTF-8");
mb_language('uni');
mb_internal_encoding('UTF-8');

// インスタンスを生成(true指定で例外を有効化)
$mail = new PHPMailer(true);

// 文字エンコードを指定
$mail->CharSet = 'utf-8';

try {
    // デバッグ設定もできます
    // $mail->SMTPDebug = 2; // デバッグ出力を有効化(レベルを指定)
    // $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str<br>";};

    // SMTPサーバの設定
    $mail->isSMTP();                            // SMTPを使用する
    $mail->Host       = 'smtp.example.com';     // SMTPサーバー
    $mail->SMTPAuth   = true;                   // SMTP認証をする
    $mail->Username   = 'user_id';              // SMTP認証に使用するユーザID
    $mail->Password   = 'password';             // SMTPサーバーのパスワード
    $mail->SMTPSecure = 'ssl';                  // 暗号化方式 tls | ssl | false
    $mail->Port       = 465;                    // ポート番号 465|587 など

    // 送信者指定(2番めの引数は省略できます)
    $mail->setFrom('sender@example.com', 'そうしん者');        // Fromメールアドレス
    $mail->addAddress('to1@example.com', 'じゅしん者');        // Toメールアドレス
    // 以下、必要に応じて設定する
//  $mail->addAddress('to2@example.com', '受信者名');          // To2メールアドレス
//  $mail->addCC('cc1@example.com', 'カーボンさん1');         // Cc1
//  $mail->addCC('cc2@example.com', 'カーボンさん2');         // Cc2
//  $mail->addReplyTo('replyto@example.com', 'リプライさん');  // ReplyTo

//  $mail->Sender = 'return@example.com'; // Return-path

    // 送信内容設定
    $mail->Subject = 'Send PHPMailer PHP Module'; 
    $mail->Body    = "本日は\r\n晴天なり";  

    // 送信
    $mail->send();
}
catch (Exception $e)
{
    // エラー(例外)
    echo "送信に失敗しました ErrorInfo: {$mail->ErrorInfo}";
}

上記のソースを phpmailer_test.php として保存した場合、保存したディレクトリに移動し以下のようにすれば実行できます。

php phpmailer_test.php

以上、Debian, Ubuntu のパッケージを利用した PHPMailerのサンプルソースの紹介でした。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-02-19 (日) 16:05:19