0

IMAP メッセージから URL を抽出する必要があります。これまでのところ、メッセージはプレーン テキストで抽出できましたが、リンクは抽出できませんでした。これが私がこれまでに得たものです

$section    = empty( $attachments ) ? 1 : 1.2;  
$text       = imap_fetchbody($connection, $msgno, $section );

echo $text."<hr/>";

セクション番号を 1 : 1.1 から 1 : 1.2 に変更しようとしましたが、役に立ちませんでした。

リンクを含むようにメールを html として抽出する必要があります。リンクを取得するには何を変更する必要がありますか?

4

1 に答える 1

0

上記のコードのいくつかのバグ:

  • 1.2文字列の代わりに浮動小数点数として使用します。1.2それは文字列であり、あなたが として変換されていないのは運だけ1.2000000001です。
  • メールに複数の本文部分が含まれる場合に備えて、部分番号をハードコーディングする -- RFC 3501 の説明を読んでください。これらの体の部分が何であるか、それらがどのように機能するか、どの部分があなたに関連しているかを見つける方法の詳細については、56
  • Content-Transfer-Encodingのデコードまたは文字セット変換の処理を実行しません。メッセージのテキスト部分に興味があるようです。これらは、quoted-printableまたはbase64デコードする必要のある複数のエンコーディングで到着する可能性があります。安全にプレイしたい場合は(そうすべきです、すでに2013年であり、IDNについて話すのではなく、URLに面白い文字があります)、文字セットからユニコードに変換され、コンテンツとのみ照合されます.
  • 添付された画像内の「リンク」や、zip ファイルのデコードされていないバイナリ表現などを検出しないように、少なくともすべてのトップレベルの本文部分の MIME タイプを確認する必要があります。
于 2013-06-14T16:55:47.083 に答える