Composerで使える、メール解析って何がある?
こんにちは。
開発チームのワイルド担当、まんだいです。
PHPでメールの解析をする場合、古典的にPEARのMailクラスを利用するのが面倒くさくも手っ取り早い方法だという認識で、メール解析自体が面倒に感じている今日この頃、何かいいものはないかとcomposerからインストールできるメール解析ライブラリを調べてみました。
php-mime-mail-parser
一番メジャーなのかどうかは分かりませんが、php-mime-mail-parserはよく使われているライブラリのようです。
これは、PHPのPECLエクステンションとして公開されている、mailparseを利用するライブラリなので、動作は速い部類と思われます。
デメリットとしては、mailparseを追加インストールするため、導入にphp.iniの編集が必要なので再起動が必要になるという点です。
パーサーの機能のみの提供になるので、メール配信なども行う場合は、別途でライブラリなり、独自実装なりで配信部分を考えなければいけません。
githubのドキュメントを見れば、使い方は分かると思いますが、非常に素直な使い方ができていいんじゃないでしょうか。
# composerからインストール composer require php-mime-mail-parser/php-mime-mail-parser
mailparseは、https://pecl.php.net/package/mailparseからダウンロードできます。
zetacomponents/mail
メールに関する機能が色々充実しているzetacomponents/mailですが、配信もこちらのライブラリでできるため、メールの実装はこちらのライブラリでだいたい実現できるかと思います。
速度的には、ピュアPHPで実装されているため、先ほどのphp-mime-mail-parserよりは不利かと思われます。
Zeta Componentsのモジュールとして展開されており、長い歴史を持つライブラリのようですが、知りませんでした。
使ってみたところ、php-mime-mail-parserほどの素直さはなく、若干のクセを感じました。
メール解析だけをしたい場合なら、php-mime-mail-parserを使ったほうがいいかなという感じです。
# composerからインストール composer require zetacomponents/mail
pear/mail
PEARのパッケージがcomposerからインストールできるんですね!
イントロの文章を真っ向から否定する感じもしますが、composerを使ってインストールできるので、ブログ的には問題ありません!
むしろ意外でいい。
最近、この手の実装から離れていたので(という言い訳)、知らなかったんですが、そもそもPEARのパッケージは、PEARのコアモジュールを必須としていて、単独でインストールできないので、インストールが面倒(これが本音)だったのですが、composer経由なら、PEARのコアモジュールの最小パッケージも依存関係の絡みでインストールしてくれます。
pear/mailを利用する最大のメリットは、過去の知識がそのまま役に立つのと、枯れているライブラリなので、バグが少ない、ターゲットになるPHPのバージョンが5.2.1以上なので、どこでも動く、といったところでしょうか。
composerからインストールできるなら、やはりこれ一択なのかも知れませんね・・・。
# composerからインストール composer require pear/mail
まとめ
個人的には、php-mime-mail-parserを推したいところですが、PECLエクステンションを必須としている辺りが少し導入への敷居が高いと言わざるを得ません。
zetacomponents/mail、pear/mailは追加のエクステンションを必要としないので、導入障壁は圧倒的に低いです。
個人的にはPECLのインストールよりPEARのインストールの方が面倒だと思っているので、composerからインストールできるようになったpear/mailはかなり好印象です。
更に言うと、zetacomponents/mailは使い方が微妙で、どうもモダンな感じがしない、という点では、pear/mailも同じです。
composerは必ずしもPEARを駆逐する存在ではないんだなというのが、印象的でした。
一長一短あるメール解析のライブラリですが、要件に合わせたものを使いたいなと言った感想でした。
以上です。