drw85135 2015-03-25 12:46
浏览 40
已采纳

PHP imap_fetchbody

I have been trying to fetch message but unsuccessful.

$body = imap_fetchbody($inbox, $email_id, 0);

the messages without attachments are good and I have output but with attachments gives some complicated outputs out of which both html and plain message are encoded with some (Content-Type) which is a part of gmail messages

  • 写回答

3条回答 默认 最新

  • dp6319 2015-03-26 07:39
    关注

    You can use the following code to get the plain text part of a multipart email body:

    <?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):.*?
    /is', '', $segment));
                break;
            }
        }
    }
    
    echo $text;
    ?> 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么