【问题标题】:get link with imap connection获取与 imap 连接的链接
【发布时间】:2012-09-24 13:52:47
【问题描述】:

我通过此代码连接到我的 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 : 英文不是我的母语,如有错误请见谅。

【问题讨论】:

  • 您的消息似乎以某种方式被 urlencoded
  • 是的,你有正确的蝙蝠我现在不知道当我改变它时我该如何解决它 echo 'Message '.$message.'
    ';我有这个消息 =0A= =0A= =0A= test.com?id=3D4 = =

标签: php email imap


【解决方案1】:
<?php echo 'Message : '.quoted_printable_decode($message).'<br/>';

【讨论】:

    【解决方案2】:

    试试这个:

    $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 到。

    【讨论】:

    • 我做了那个 echo 'Message '.urldecode(rawurlencode(utf8_decode(rawurldecode($message)))).'
      ';给我那个消息 =0A= =0A= =0A= test.com?id=3D4 = =
    • 为什么不把明文放在邮件正文中?
    • 好的,我在我的 gmail 帐户中发送此消息“嗨,你好吗?”当我执行我的脚本时,我在浏览器中有她“消息嗨,你好吗 = =”
    • 对我来说看起来不错。 Message 是消息开始,= = " - 是 mime 分隔符
    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 2021-03-25
    • 2012-08-30
    相关资源
    最近更新 更多