ええ、そのrfcと他のいくつかの基本的なチュートリアルに基づいて、基本的なパーサーを書くことができました。しかし、私を台無しにし続けるのは、マルチパート MIME のネストされた境界です。
私の携帯電話から送信された MMS (SMS ではない) メッセージは単なる標準的なメールであることがわかったので、受信メールを読み取り、送信元をチェックし (携帯電話からのみ許可する)、本文部分を使用して別の方法で実行するシステムを使用しています。私のサーバー上のコマンド。電子メールによるリモコンのようなものです。
システムは画像を送信するように設計されているため、さまざまにエンコードされた部分がたくさんあります。mms.smil.txt 部分、text/plain (役に立たない、「これは html メッセージです」と言うだけです)、application/smil 部分 (電話が拾う部分)、text/html 部分携帯電話会社の広告、メッセージ、すべて html でラップ、最後にプレーン メッセージ (私が使用する部分) を含むテキスト ファイルの添付ファイル (メッセージに添付ファイルとして画像を挿入すると、添付ファイル 1、base64 でエンコードされている場合、テキスト部分は添付ファイル 2 として添付されます)
私は自分のキャリアからの正確なメール形式で動作させましたが、他の誰かの電話からのメッセージをそれを通して走らせたとき、それは悲惨な方法でたくさん失敗しました.
この電話 - >メール - >解析 - >コマンドシステムを拡張したい他のプロジェクトがありますが、メールからさまざまな部分を取り出して使用するために、安定した/堅実な/汎用パーサーが必要です。
私の最終目標は、生のパイプされたメールをフィードできる関数を用意し、ヘッダー var:val ペアの連想サブ配列を含む大きな配列と、文字列全体としての本文用の配列を取得することです。
これを検索すればするほど、同じものを見つけます。メールに関連する太陽の下ですべてを行う巨大な開発されすぎたメール処理パッケージ、または役に立たない (このプロジェクトでは) チュートリアル。
私は弾丸を噛んで、自分自身で何かを注意深く書かなければならないと思います.