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);

在我的帐户中,我有一封电子邮件,她的身体有

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

我怎样才能准确地获得链接。

Ps:英文不是我的母语,如有错误请见谅。

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 回答