質問

「Plain Text Mimeメッセージ形式」のメールを含むファイルがあります。これがEML形式かどうかはわかりません。メールには添付ファイルが含まれており、添付ファイルを抽出して再度作成したいと思います。これは、添付ファイルの部分がどのように見えるかです -

...
...
Receive, deliver details
...
...
From: sac ascsac <sacsac@sacascsac.ascsac>

Date: Thu, 20 Jan 2011 18:05:16 +0530

Message-ID: <AANLkTimmSL0iGW4rA3tvSJ9M3eT5yZLTGsqvCvf2fFC3@mail.gmail.com>

Subject: Test attachments

To: ascsacsa@ascsac.com

Content-Type: multipart/mixed; boundary=20cf3054ac85d97721049a465e12



--20cf3054ac85d97721049a465e12

Content-Type: multipart/alternative; boundary=20cf3054ac85d97717049a465e10



--20cf3054ac85d97717049a465e10

Content-Type: text/plain; charset=ISO-8859-1



hello this is a test mail. It contains two attachments



--20cf3054ac85d97717049a465e10

Content-Type: text/html; charset=ISO-8859-1



hello this is a test mail. It contains two attachments<br>


--20cf3054ac85d97717049a465e10--

--20cf3054ac85d97721049a465e12

Content-Type: text/plain; charset=US-ASCII; name="simple_test.txt"

Content-Disposition: attachment; filename="simple_test.txt"

Content-Transfer-Encoding: base64

X-Attachment-Id: f_gj5n2yx60



aGVsbG8gd29ybGQKYWMgYXNj
...
encoded things here
...
ZyBmZyAKCjIKNDIzCnQ2Mwo=

--20cf3054ac85d97721049a465e12

Content-Type: application/x-httpd-php; name="oscomm_backup_code.php"

Content-Disposition: attachment; filename="oscomm_backup_code.php"

Content-Transfer-Encoding: base64

X-Attachment-Id: f_gj5n5gxn1



PD9waHAKCg ...
...
encoded things here
...
X2xpbmsoRklMRU5BTUVfQkFDS1VQKSk7Cgo/Pgo=
--20cf3054ac85d97721049a465e12--

その間の部分がわかります X-Attachment-Id: f_gj5n2yx60ZyBmZyAKCjIKNDIzCnQ2Mwo=, 、両方とも最初の添付ファイルの内容を含みます。これらの添付ファイル(ファイル名とコンテンツとそれらのファイルを作成する)を解析したいです。

dbx形式のファイルを使用して解析した後、このファイルを取得しました DBXパーサー PHPクラスで利用可能なクラス。

私は多くの場所で検索しましたが、これについてはあまり議論しませんでした。 添付ファイルの電子メールを解析するスクリプト. 。検索中にいくつかの条件を逃したかもしれません。その答えで言及されています -

境界を使用して、base64エンコードされた情報を抽出できます

しかし、私はどちらが境界と境界を正確に使用するのか分かりませんか?すでにいくつかのライブラリまたはこれを行うための明確に定義された方法がなければなりません。ここでホイールを再発明しようとすると、多くの間違いを犯すと思います。

役に立ちましたか?

解決

PHP MailParse拡張機能があります、あなたはそれを試しましたか?

マニュアルの方法は、メールでメールを処理します。最初のコンテンツタイプのヘッダー(例のこれは例)を押したとき:コンテンツタイプ:MultiPart/Mixed;境界= 20CF3054AC85D97721049A465E12

境界があります。この文字列は、複数の部品間の境界として使用されます(そのため、マルチパートと呼ばれます)。ラインがダッシュとこの文字列から始まるたびに、新しい部分が始まります。例:-20CF3054AC85D97721049A465E12

すべての部品は、ヘッダー、空白行、コンテンツから始まります。ヘッダーのコンテンツタイプを見ると、添付ファイル、タイプの添付ファイル、ファイル名を決定できます。コンテンツ全体を読み、スペースを剥がし、base64_Decodeを読んでください。ファイルのバイナリコンテンツがあります。これは助けますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top