Php 使用imap_fetchbody时邮件正文不清晰

Php 使用imap_fetchbody时邮件正文不清晰,php,email,Php,Email,我正在使用以下代码来删除邮件正文 $imap = imap_open($mailbox,$user,$password); $mails = imap_search($imap,'UNSEEN'); foreach($mails as $mail) { $message = trim(utf8_encode(quoted_printable_decode(imap_fetchbody($imap,$mail,"1")))); if(strpos($message,"<html")

我正在使用以下代码来删除邮件正文

$imap = imap_open($mailbox,$user,$password);
$mails = imap_search($imap,'UNSEEN');
foreach($mails as $mail)
{
  $message = trim(utf8_encode(quoted_printable_decode(imap_fetchbody($imap,$mail,"1"))));

  if(strpos($message,"<html") !== false)
  {
    $mail_body = fopen($dir."mail.html","w");
  }
  else
  {
    $mail_body = fopen($dir."mail.txt","w");
  }
}
$imap=imap\u打开($mailbox、$user、$password);
$mails=imap_search($imap,'UNSEEN');
foreach($mails作为$mail)
{
$message=trim(utf8编码(引用可打印解码(imap)获取正文($imap,$mail,“1”));

如果(strpos($message,“我终于找到了一个解决方案。原因似乎是转发的邮件,最初是从苹果设备发送的

现在我用它来提取信息,它就工作了

    $structure = imap_fetchstructure($imap, $mail);
    $part = $structure->parts[1];
    $message = imap_fetchbody($imap,$mail,1);
    if(strpos($message,"<html") !== false)
    {
      $message = trim(utf8_encode(quoted_printable_decode($message)));
    }
    else if($part->encoding == 3)
    {
      $message = imap_base64($message);
    }
    else if($part->encoding == 2)
    {
      $message = imap_binary($message);
    }
    else if($part->encoding == 1)
    {
      $message = imap_8bit($message);
    }
    else
    {
      $message = trim(utf8_encode(quoted_printable_decode(imap_qprint($message))));
    }
$structure=imap\u fetchstructure($imap,$mail);
$part=$structure->parts[1];
$message=imap_fetchbody($imap$mail,1);

如果(strpos($message),“您是否首先验证了这些邮件实际上没有加密?是的,它们没有加密。问题是邮件和转发邮件的编码。