如何使用PHP解码7BIT编码的消息?

时间:2015-04-02 15:39:18

标签: php encoding imap decode 7-bit

我正在使用PHP内置的imap扩展来读取来自imap电子邮件的消息,并将消息解析出来并将其添加到另一个系统的数据库中。

问题是消息是编码的。所以我将首先解码它,然后将其添加到数据库中。

我可以使用imap_fetchstructure()来查找使用它们编码的消息的编码类型,我应该可以对其进行解码。

所以这就是我所做的

$struct = imap_fetchstructure($this->conn, $id, 0);

                    if(isset($struct->encoding)){
                        $message = $this->_decodeMessage($message, $struct->encoding);
                    }

    private function _decodeMessage($msg, $type){

        if($type == 0){
            return mb_convert_encoding($msg, "UTF-8", "auto");
        } elseif($type == 1){
            return imap_8bit($msg); //imap_utf8
        } elseif($type == 2){
            return imap_base64(imap_binary($msg));
        } elseif($type == 3){
            return imap_base64($msg);
        } elseif($type == 4){
            return imap_qprint($msg);
            //return quoted_printable_decode($msg);
        } else {
            return $msg;
        }
    }

我遇到的问题是使用7BIT编码的某些消息未正确解码,我在打印$message

时仍然看到加密的消息

当类型为7BIT时,如何正确解码消息?

0 个答案:

没有答案