2012-09-24 76 views
1

我連接到我的Gmail帳戶鏈接獲得與IMAP連接

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; 
     $username = '[email protected]'; 
     $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?= + [email protected]> 
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:English不是我的母語,對於任何錯誤感到抱歉。

+0

它看起來像你的消息被以某種方式進行了urlencoded – JvdBerg

+1

是的,你有權蝙蝠我闖到大,現在我怎麼能解決這個問題 當我改變它回聲「消息」。$消息「。
';我有這個消息= 0A = = 0A = = 0A = http://www.test.com?id=3D4 = = –

回答

2
<?php echo 'Message : '.quoted_printable_decode($message).'<br/>'; 
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。但它適用於你的電子郵件客戶端,因爲電子郵件客戶端將對該消息進行url解碼。

+0

我做了回聲'消息'.urldecode(rawurlencode(utf8_decode(rawurldecode($ message))) )「。
'; chi給我那個消息= 0A = = 0A = = 0A = http://www.test.com?id=3D4 = –

+0

爲什麼不把簡單的信息放在電子郵件正文中? – JvdBerg

+0

好吧,我發送這條消息在我的gmail帳戶「你好,你很好」當我執行我的腳本我有她在我的瀏覽器「消息你好你好嗎= =」 –