PHP imap_fetchbody
PHP imap_fetchbody
我一直在尝试获取消息但未成功。
$body = imap_fetchbody($inbox, $email_id, 0);
没有附件的消息很好,我有输出但有附件
给出了一些复杂的输出,其中 html 和普通消息都用一些(Content-Type)编码,这是 gmail 消息的一部分
您可以使用以下代码获取多部分电子邮件正文的纯文本部分:
<?php
//get the body
$body = imap_fetchbody($inbox, $email_id, 0);
//parse the boundary separator
$matches = array();
preg_match('#Content-Type: multipart\/[^;]+;\s*boundary="([^"]+)"#i', $body, $matches);
list(, $boundary) = $matches;
$text = '';
if(!empty($boundary)) {
//split the body into the boundary parts
$emailSegments = explode('--' . $boundary, $body);
//get the plain text part
foreach($emailSegments as $segment) {
if(stristr($segment, 'Content-Type: text/plain') !== false) {
$text = trim(preg_replace('/Content-(Type|ID|Disposition|Transfer-Encoding):.*?\r\n/is', '', $segment));
break;
}
}
}
echo $text;
?>
这有帮助
$body = imap_fetchbody($inbox, $email_id, 1.1);
$body = imap_fetchbody($inbox, $email_id, 1.0);
这似乎是唯一适合我的。我认为最后一个参数中的第一个整数代表电子邮件的部分,因此如果它以零开头,它将包含所有 header 信息。如果它以 1 开头,则它包含消息信息。那么第二个整数后跟句点就是该节的节。所以当我输入零时它会显示信息,但是当我输入一或两个时它不会显示某些电子邮件的任何内容。
我一直在尝试获取消息但未成功。
$body = imap_fetchbody($inbox, $email_id, 0);
没有附件的消息很好,我有输出但有附件 给出了一些复杂的输出,其中 html 和普通消息都用一些(Content-Type)编码,这是 gmail 消息的一部分
您可以使用以下代码获取多部分电子邮件正文的纯文本部分:
<?php
//get the body
$body = imap_fetchbody($inbox, $email_id, 0);
//parse the boundary separator
$matches = array();
preg_match('#Content-Type: multipart\/[^;]+;\s*boundary="([^"]+)"#i', $body, $matches);
list(, $boundary) = $matches;
$text = '';
if(!empty($boundary)) {
//split the body into the boundary parts
$emailSegments = explode('--' . $boundary, $body);
//get the plain text part
foreach($emailSegments as $segment) {
if(stristr($segment, 'Content-Type: text/plain') !== false) {
$text = trim(preg_replace('/Content-(Type|ID|Disposition|Transfer-Encoding):.*?\r\n/is', '', $segment));
break;
}
}
}
echo $text;
?>
这有帮助
$body = imap_fetchbody($inbox, $email_id, 1.1);
$body = imap_fetchbody($inbox, $email_id, 1.0);
这似乎是唯一适合我的。我认为最后一个参数中的第一个整数代表电子邮件的部分,因此如果它以零开头,它将包含所有 header 信息。如果它以 1 开头,则它包含消息信息。那么第二个整数后跟句点就是该节的节。所以当我输入零时它会显示信息,但是当我输入一或两个时它不会显示某些电子邮件的任何内容。