着信メールをシェル アカウントにパイプし、その結果、メールを解析する PHP スクリプトにパイプする .forward.postix があります。
今のところ、オンラインで見たすべてのものに基づいて、このexplode('From: ', $email);
アプローチを使用して、すべてをデータベースに必要な vars に分割しています。
添付ファイルを入力してください。同じアプローチを使用して、jpg 添付ファイルを取り出すためにこれを実行していますが、すべての電子メール クライアントが生のソースを同じようにフォーマットするわけではなく、頭痛の種になっています。
$contentType1 = explode('Content-type: image/jpg;', $email); //start ContentType
$contentType2 = explode("--Boundary_", $contentType1[1]); //end ContentType
$jpg1 = explode("\n\n", $contentType2[0]); //double return starts base64 blob
$jpg2 = explode("\n\n", $jpg1[1]); //double return marks end of base64 blob
$image = base64_decode($jpg2[0]); //decode base64 blob into jpg raw
ここに私の問題があります:
すべてのメール クライアント (たとえば GMail など) が添付ファイルを としてリストするわけではありません'Content-type: image/jpg'
。GMail は!'Content-Type: IMAGE/JPEG'
として入れて送信することもあります。'Content-Type: image/jpeg'
私の爆発と一致しない...
私の質問:誰かが base64 ブロブの境界を見つけるより良い方法を知っていますか? または、大文字と小文字を区別しない爆発の方法で、何に一致するかを'Content-Type:'
試したり、確認したりできimage/jpg
ますか?image-jpeg