v2.5.2
Giriş yap

imap içerik sorunu

Anonim
317 defa görüntülendi

Merhabalar, imap ile maillerimi almak istiyorum fakat bir kaç hata ile karşılaştım ve çözüm üretemiyorum.

Bu yüzden daha önce yazılmış ve aktif şekilde kullandığınız bir imap class var ise önerirseniz çok sevinirim.
Mail'de ekde bulunan dosyaları indirebileceğim her türlü içeriği karakter sorunu olmadan görebileceğim bir sınıf var mı?

Altta bulunan benim saf fonksiyonları kullanarak yaptığım bir yapı her şeyi alabildim sadece içerik tipi eğer text olarak gelmiyor ise alamıyorum
ve ekdeki dosyaları alamıyorum eğer önerebileceğiniz bir class yok ise bu 2 sorunu çözmemde yardımcı olursanız sevinirim.

// Connect to gmail
$imapPath = '{mail.servisadi.com:110/pop3}INBOX';
$username = '[email protected]';
$password = 'sifre';


$inbox = imap_open($imapPath,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());

$emails = imap_search($inbox,'ALL');


for ($i=1; $i < 10;) {
  (array)$headerInfo = imap_headerinfo($inbox,$emails[$i]);
  $gonderen_adi = imap_mime_header_decode(iconv_mime_decode($headerInfo->from[0]->personal, ICONV_MIME_DECODE_CONTINUE_ON_ERROR, 'UTF-8'))[0]->text;
  $gonderen_email = $headerInfo->from[0]->mailbox.'@'.$headerInfo->from[0]->host;
  $cevap_email = $headerInfo->reply_toaddress;
  $gonderi_tarihi = $headerInfo->date;
  $konu = imap_mime_header_decode(iconv_mime_decode($headerInfo->subject, ICONV_MIME_DECODE_CONTINUE_ON_ERROR, 'UTF-8'))[0]->text;

  $overview = imap_fetch_overview($inbox,$emails[$i],0);
  $structure = imap_fetchstructure($inbox, $emails[$i]);
  print_r($structure);
  if(isset($structure->parts) && is_array($structure->parts) && isset($structure->parts[1])) {
      $part = $structure->parts[1];
      $message = imap_fetchbody($inbox,$emails[$i],2);
    switch ($part->encoding) {
        # 7BIT
        case 0:
        # 8BIT
        case 1:
            $message = quoted_printable_decode(imap_8bit($message));
        # BINARY
        case 2:
            $message = imap_binary($message);
        # BASE64
        case 3:
            $message = imap_base64($message);
        # QUOTED-PRINTABLE
        case 4:
            if ($part->parameters[0]->attribute == 'CHARSET') {
              $message = quoted_printable_decode($message);
              $message = iconv($part->parameters[0]->value, 'UTF-8', $message);
            }else{
              $message = '';
            }
        # OTHER
        case 5:
        # UNKNOWN
        default:
    }
  }

  echo "Gönderen Kişi: ".$gonderen_adi."<br>";
  echo "Gönderen E-Posta: ".$gonderen_email."<br>";
  echo "Yanıt E-Posta: ".$cevap_email."<br>";
  echo "İleti Tarihi: ".$gonderi_tarihi."<br>";
  echo "Gönderi Konusu: ".$konu."<br><hr><br>";

  echo "Gönderi İçeriği: ".$message."<br><hr><br>";

  $i++;

}

imap_expunge($inbox);
imap_close($inbox);


Cevap yaz
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!