我只是尝试使用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;但我找不到任何帮助我的东西。同一机构中也有几种不同的内容类型。
如何获得消息的清晰主体,我是否必须以不同的方式处理不同的内容类型?
感谢您的帮助。