PHP 電子メール解析: 電子メールから情報を解析して抽出します。

WBOY
リリース: 2023-09-19 13:54:02
オリジナル
1187 人が閲覧しました

PHP 電子メール解析: 電子メールから情報を解析して抽出します。

PHP 電子メール解析: 電子メールからの情報の解析と抽出

一般的な通信方法として、電子メールには多くの有用な情報が含まれていることがよくあります。プログラミングでは、後続の処理のために電子メールを解析し、その内容を抽出する必要がある場合があります。この記事では、PHP を使用して電子メールから情報を解析および抽出する方法について説明し、具体的なコード例を示します。

1. メールを解析する

PHP では、組み込みの imap 拡張機能を使用してメールを解析できます。 imap 拡張機能は、メールボックス サーバーへの接続、メールの読み取り、内容の解析に役立つ一連の機能を提供します。電子メールを解析するサンプル コードを次に示します。

<?php
// 连接到邮箱服务器
$mailbox = imap_open('{imap.example.com:993/ssl}INBOX', 'your_username', 'your_password');

// 获取邮件数量
$mailCount = imap_num_msg($mailbox);

// 循环遍历每封邮件
for ($i = 1; $i <= $mailCount; $i++) {
    // 获取邮件头信息
    $header = imap_headerinfo($mailbox, $i);

    // 打印邮件主题和发件人
    echo "主题:{$header->subject}
";
    echo "发件人:{$header->fromaddress}
";

    // 获取邮件内容
    $body = imap_body($mailbox, $i);

    // 打印邮件内容
    echo "内容:{$body}
";

    // 进行其他操作,如提取附件等

    // 标记邮件为已读
    imap_setflag_full($mailbox, $i, "\Seen");
}

// 关闭邮箱连接
imap_close($mailbox);
?>
ログイン後にコピー

上記のコードは、まずメールボックス サーバーに接続し、次に電子メールの数を取得し、各電子メールをループします。件名や送信者などの電子メールのヘッダー情報は、imap_headerinfo 関数を呼び出すことで取得できます。電子メールの内容は、imap_body 関数を呼び出すことで取得できます。実際の使用では、カーボンコピーの人物、時刻など、必要に応じてさらに多くの電子メール情報を抽出できます。

2. メール内の情報を抽出する

メール内の情報には、テキスト、HTML コンテンツ、添付ファイルなどが含まれる場合があります。 PHP では、さまざまな文字列処理関数と正規表現を使用して、電子メールから情報を抽出できます。以下に、一般的な要件と対応する抽出方法を示します。

  1. 電子メール内のリンクを抽出する

電子メール内のリンクは通常、<a href=" で終わります。 URL">テキスト</a>の形式。正規表現を使用してリンクを抽出できます。サンプル コードは次のとおりです。

preg_match_all('/<as+href=['"]([^"']+)["'][^>]*>(.*?)</a>/i', $body, $matches);

// 打印提取到的链接
foreach ($matches[1] as $url) {
    echo "链接:{$url}
";
}
ログイン後にコピー
  1. 電子メール内の画像の抽出

電子メール内の画像は通常、<img src="url" alt=" で終わります。テキスト」>が表示されます。正規表現を使用して画像 URL を抽出できます。サンプル コードは次のとおりです。

preg_match_all('/<img s+src=['"]([^"']+)["'][^ alt="PHP 電子メール解析: 電子メールから情報を解析して抽出します。" >]*>/i', $body, $matches);

// 打印提取到的图片URL
foreach ($matches[1] as $url) {
    echo "图片URL:{$url}
";
}
ログイン後にコピー
  1. 電子メールの添付ファイルの抽出

電子メールの添付ファイルは、MIME タイプ別に抽出できます。サンプル コードは次のとおりです。

// 获取附件信息
$structure = imap_fetchstructure($mailbox, $i);

// 遍历附件
foreach ($structure->parts as $part) {
    if (isset($part->disposition) && $part->disposition == 'attachment') {
        echo "附件:{$part->dparameters[0]->value}
";
    }
}
ログイン後にコピー

上記のコードでは、imap_fetchstruct 関数を呼び出して電子メールの構造情報を取得し、構造内の各部分を走査します。ある部品の性質が添付ファイルであれば、その部品が添付ファイルであることを意味し、そのファイル名やその他の添付情報を取得できます。

概要

この記事では、PHP を使用して電子メールから情報を解析して抽出する方法を紹介します。 imap 拡張機能を使用すると、メールボックス サーバーに接続し、メールを読んでその内容を解析できます。文字列処理関数と正規表現を使用して、電子メール内のリンク、画像、添付ファイルなどの情報を抽出できます。実際のアプリケーションでは、必要に応じてさらなる処理や分析を実行できます。

以上がPHP 電子メール解析: 電子メールから情報を解析して抽出します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート