#author("2023-02-11T21:34:04+09:00","","")
#author("2023-02-19T16:05:19+09:00","","")
#navi(../)
* PHPMailerを使ってみる [#sc31159c]
PHPMailerのサンプルソースを公開しています。~
PHP標準のmail関連の関数だと、SMTPを使ったメール送信ができませんよね。~
定番と言われている [[PHPMailer>https://github.com/PHPMailer/PHPMailer]] を使ったサンプルソースを公開しました。

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

#contents

* 動作確認環境 [#jf514eb7]
- ebian GNU/Linux 11 (bullseye)
- Ubuntu 22.04.1 LTS (jammy)
- Raspbian GNU/Linux 11 (bullseye)

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

* 環境構築 [#q52b31b1]
以下のコマンドで、パッケージをインストールすれば動作確認をすることができます。~
 sudo apt install php-cli php-mbstring libphp-phpmailer

** 各パッケージの説明 [#tf57246a]
以下に今回動作させるために必要なパッケージを紹介します。
- php-cli : PHPコマンドラインインタフェース
- PHPのMBSTRINGパッケージ
- PHPのメール関連モジュール~
https://github.com/PHPMailer/PHPMailer

* PHPMailerサンプルソース [#v205421d]
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