PHP IMAP-Extension获取干净的Message-Body

时间:2015-10-16 14:22:53

标签: php email imap

我只是尝试使用IMAP-Extension for PHP,并使用如下对象构建连接:

function __construct($user, $pass, $server = 'my.mailserver.ch', $port = 143) {
    $this->server = $server;
    $this->user = $user;
    $this->pass = $pass;
    $this->port = $port;

    if($this->conn = imap_open('{'.$this->server.'}', $this->user, $this->pass)){
        $this->success = 1;
    }else{
        $this->success = -1;
    }

    $this->inbox();
}

然后我使用以下函数从我的邮件中获取必要的数据。 (哪个有效)

function inbox() {
    $this->msg_cnt = imap_num_msg($this->conn);
    $in = array();
    for($i = 1; $i <= $this->msg_cnt; $i++) {
        $in[] = array(
            'index'     => $i,
            'header'    => imap_headerinfo($this->conn, $i),
            'body'      => imap_fetchbody($this->conn, $i),
            'structure' => imap_fetchstructure($this->conn, $i)
        );
    }

    $this->inbox = $in;
}

但是,如果我现在查看消息的正文,除了消息之外我会得到多个不同的内容,例如:

--001a113ec946082fc705210e59c7 Content-Type: multipart/alternative; boundary=001a113ec946082fc005210e59c5 --001a113ec946082fc005210e59c5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding

等等。我检查了如何从那个&#34; multipart / alternative&#34;但我找不到任何帮助我的东西。同一机构中也有几种不同的内容类型。

如何获得消息的清晰主体,我是否必须以不同的方式处理不同的内容类型?

感谢您的帮助。

0 个答案:

没有答案