- 追加された行はこの色です。
- 削除された行はこの色です。
#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のサンプルソースの紹介でした。