[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Successor to CentOS] AlmaLinux OS server construction/migration service

[Successor to CentOS] AlmaLinux OS server construction/migration service

[For WordPress only] Cloud server “Web Speed”

[For WordPress only] Cloud server “Web Speed”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Reservation system development] EDISONE customization development service

[Reservation system development] EDISONE customization development service

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Compatible with over 200 countries] Global eSIM “Beyond SIM”

[Compatible with over 200 countries] Global eSIM “Beyond SIM”

[If you are traveling, business trip, or stationed in China] Chinese SIM service “Choco SIM”

[If you are traveling, business trip, or stationed in China] Chinese SIM service “Choco SIM”

[Global exclusive service] Beyond's MSP in North America and China

[Global exclusive service] Beyond's MSP in North America and China

[YouTube] Beyond official channel “Biyomaru Channel”

[YouTube] Beyond official channel “Biyomaru Channel”

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
2,526
X facebook はてなブックマーク pocket
[2024.6.30 CentOS support ended] CentOS server migration solution

[2024.6.30 CentOS support ended] CentOS server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

The person who wrote this article

About the author

Yoichi Bandai

My main job is developing web APIs for social games, but I'm also fortunate to be able to do a lot of other work, including marketing.
Furthermore, my portrait rights in Beyond are treated as CC0 by him.