1

このコードを介してGmailアカウントに接続します

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
        $username = 'myacount@gmail.com';
        $password = 'password';

        /* try to connect */
        $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());

        /* grab emails */
        $emails = imap_search($inbox,'all');

        /* if emails are returned, cycle through each... */
        if($emails) {

          /* begin output var */
          $output = '';

          /* put the newest emails on top */
          rsort($emails);

          /* for every email... */
          foreach($emails as $email_number) {

            /* get information specific to this email */
            $overview = imap_fetch_overview($inbox,$email_number,0);
            $message = imap_fetchbody($inbox,$email_number,2);
            $message=strip_tags($message);
            /* output the email header information */
            $emai=split("<",$overview[0]->from );
            echo 'Lus ou pas : '.($overview[0]->seen ? 'lue' : 'Non Lue').'<br>';
            echo 'subject : '.$overview[0]->subject.'<br> ';
            //echo 'from : '.$overview[0]->from.'<br>';
            echo 'from : '.$emai[0].' + '.$emai[1].'<br>';
            echo 'date :  '.$overview[0]->date.'<br>';

            /* output the email body */
            echo 'Message '.rawurlencode(utf8_decode(rawurldecode($message))).'<br>';
            break;
          }

          echo "<br><br><br><hr><br><br>";

        }

        /* close the connection */
        imap_close($inbox);

私のアカウントでは、彼女の体に1通のメールがあります

http://www.test.com?id=4

しかし、スクリプトを実行すると、ブラウザに彼女が表示されます

Lus ou pas : Non Lue
subject : test
from : =?ISO-8859-1?Q?fai=E7al_name?= + myacount@hotmail.com>
date : Mon, 24 Sep 2012 13:39:11 +0000
Message %0D%0A%0D%0A%0D%0A%3D0A%3D%0D%0A%3D0A%3D%0D%0A%3D0A%3D%0D%0Ahttp%3A%2F%2Fwww.test.com%3Fid%3D3D4%20%09%09%20%09%20%20%20%09%09%20%20%20%09%09%20%09%20%20%20%3D%0D%0A%09%09%20%20%0D%0A%3D%0D%0A

リンクを正確に取得するにはどうすればよいですか。

追伸:英語は私の母国語ではありません。間違いをお詫びします。

4

2 に答える 2

2
<?php echo 'Message : '.quoted_printable_decode($message).'<br/>';
于 2013-08-23T14:57:55.093 に答える
1

これを試して:

$s = urldecode('%0D%0A%0D%0A%0D%0A%3D0A%3D%0D%0A%3D0A%3D%0D%0A%3D0A%3D%0D%0Ahttp%3A%2F%2Fwww.test.com%3Fid%3D3D4%20%09%09%20%09%20%20%20%09%09%20%20%20%09%09%20%09%20%20%20%3D%0D%0A%09%09%20%20%0D%0A%3D%0D%0A');
echo $s;

画面に出力=0A= =0A= =0A= http://www.test.com?id=3D4 = =します。

そもそもなぜあなたのメッセージがurlencodedなのかわからない場合。ただし、電子メールクライアントはメッセージをにurldecodeするため、電子メールクライアントでは機能します。

于 2012-09-24T14:20:26.550 に答える