アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【PHPDebian
【PHP】Mail/mimeDecodeを使ってメールの中身を解析(準備編)
POSTED BY
2023-03-25

PHP用の便利な拡張クラス群PEAR

https://pear.php.net/manual/en/installation.getting.php

にあるとおり、ソースインストール時の./configure に --without-pear をつけなければ自動でインストールされる。

インストールされていない場合、同じく上記公式に書いてあるとおり、

sudo -s
wget http://pear.php.net/go-pear.phar
php go-pear.phar

とすれば、後からインストール可能。このときインストール場所など12の質問を聞かれるがすべてENTERで良いだろう。
インストールしたら、アップデートしておく。なおphpビルド時のconfigureで--with-opensslをつけていないとSSL経由のアップデートエラーになるので注意。

sudo pear channel-update pear.php.net

PEARライブラリの1つ、Mail_mimeDecodeをインストールする。これはエンコードされているメールの生データをデコードしてくれるクラス。

https://pear.php.net/package/Mail_mimeDecode/download

にあるとおり、

sudo pear install Mail_mimeDecode-1.5.6

としてインストール。

あとはPHPから読み込んで使う。php.iniにパスが通っているか確認、通っていなかったら手動で追加する。

/usr/local/lib/php.ini

include_path=".:/usr/local/share/pear"

なお最新バーションでは静的クラス利用ができなくなっている。オブジェクトをnewして使う。

<?php
require_once 'Mail/mimeDecode.php';
$stdin = file_get_contents('php://stdin');
$decoder = new Mail_mimeDecode($stdin);
$params = [];
$params['include_bodies'] = true;
$params['decode_bodies']  = true;
$params['decode_headers'] = true;
$params['crlf'] = "\r\n";
$object = $decoder->decode($params);

中身解析の実践はPHPでメールの中身をフルに分解して出力するへ。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】