【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【次世代】ゲーム専用データ分析エンジン『ThinkingEngine』

【次世代】ゲーム専用データ分析エンジン『ThinkingEngine』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

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を駆逐する存在ではないんだなというのが、印象的でした。

一長一短あるメール解析のライブラリですが、要件に合わせたものを使いたいなと言った感想でした。

 
以上です。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
1
読み込み中...
1 票, 平均: 1.00 / 11
1,813
facebook twitter はてなブックマーク
【大阪 / 横浜】インフラエンジニア / サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア / サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

萬代陽一

ソーシャルゲームのウェブ API などの開発がメイン業務ですが、ありがたいことにマーケティングなどいろんな仕事をさせてもらえています。
なおビヨンド内での私の肖像権は CC0 扱いになっています。