PHP IMAP メール解析

ここではPHP、IMAPを使ったメール解析をまとめています。

<?php

    // 言語
    mb_language('Japanese');
    // 文字コード
    mb_internal_encoding('utf-8');

    $mailNum = 1;

    $mbox = imap_open("{pop3.exsample.com:143}INBOX", "mail@address.com", "password") or die('cannot open');
    // メッセージヘッダ取得
    $header = imap_headerinfo($mbox, $mailNum);
    $body = imap_body($mbox, $mailNum, FT_INTERNAL);
    $mailData = array(
        "date" => date("Y-m-d H:i:s", strtotime($header->date)),
        "to" => $header->toaddress,
        "cc" => $header->ccaddress,
        "from" => $header->fromaddress,
        "subject" => mb_convert_encoding($header->subject, 'utf-8', 'auto'),
        "body" => mb_convert_encoding($body, 'utf-8', 'auto'),
    );

    imap_close($mbox);

    echo $mailData["date"]."<br/><br/>";
    echo $mailData["to"]."<br/><br/>";
    echo $mailData["cc"]."<br/><br/>";
    echo $mailData["from"]."<br/><br/>";
    echo $mailData["subject"]."<br/><br/>";
    echo nl2br($mailData['body']);

ソースコードはUTF-8で書いています。

imap_open(・・・);
Manualより
imap_open ( string $mailbox , string $username , string $password [, int $options = 0 [, int $n_retries = 0 [, array $params = NULL ]]] )

第一引数に受信サーバーとポート番号で指定してください。
第二引数にメールアドレス
第三引数にパスワードを設定してください。

例では$mailNumの変数に解析したいメールを指定しています。

SSL IMAP

imap_open("{pop3.exsample.com:993/imap/ssl}INBOX", "mail@address.com", "password");

例でSSL IMAPでの接続はこのようになります。
サーバーの環境に合わせて設定してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*