ホームページ  >  記事  >  バックエンド開発  >  PHP 電子メール解析: 電子メールから情報を解析して抽出します。

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

WBOY
WBOYオリジナル
2023-09-19 13:49:501181ブラウズ

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="%E3%81%A7%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%20URL">テキスト</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}
";
}
    php 正则表达式 html 字符串 循环 href
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。