2013-05-26 2 views
1

Я сделал программу для использования php для загрузки электронной почты из gmail и сохранения в html-файл. все работает файл, его подключение к сети, загрузка почты, загрузка вложений, загрузив внедренные почты, и это также сохранение в HTML-файлы и все отлично работает, но только некоторые письма приходят как:Как получить электронную почту gmail и отобразить ее, как она отображается в gmail

Пример 1:

--_008_8BDE32B1FDB5C947B54F92503EC9934F015611E6glmrsvrmail1gil_ Content-Type: multipart/alternative; boundary="_000_8BDE32B1FDB5C947B54F92503EC9934F015611E6glmrsvrmail1gil_" --_000_8BDE32B1FDB5C947B54F92503EC9934F015611E6glmrsvrmail1gil_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RGVhciBSb3NlLA0KDQpHcmVldGluZ3MgZnJvbSBHaWxpIExhbmthbmZ1c2hp IE1hbGRpdmVzIQ0KDQpXZSBhcmUgZGVsaWdodGVkIHRvIGNvbmZpcm0geW91 

Пример 2: в Gmail не показывает с красочным и HTML, но здесь он придет весь текст в один, как, но не HTML & цвета

Пример 3:

N§’çè®êßjËZžÌ®(î²ÜžÛh’z0†Œ&¹ÈpŠY\¢Ëf{‰à†+ 

Пример 4:

------_=_NextPart_002_01CE2076.4A2A4F64 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 RGVhciBSb3NlLA0KDQogDQoNClRoaXMgaXMgbXkgb2ZmaWNlIGVtYWlsIGFkZHJlc3MuIEVuY2xv c2VkIGRvY3VtZW50cyBhcyByZXF1aXJlZC4gQWxzbyBlbmNsb3NlZCBteSBjb25maXJtZWQgdGlj a2V0IGZvciB5b3VyIGZ1cnRoZXIgYWN0aW9ucywgcmVxdWVzdCB5b3UgdG8gYXJyYW5nZSBhaXJw 

Я использую следующий способ верхней загрузки почты, пожалуйста, это подходит только для некоторых писем ПРИМЕЧАНИЕ: У меня нет проблемы с приложениями ..

function read_all_parts($mbox,$uid) 
{ 
global $mime,$ret_info,$enc; 
$mime = array("text","multipart","message","application","audio","image","video","other","unknow"); 
$enc = array("7BIT","8BIT","BINARY","BASE64","QUOTED-PRINTABLE","OTHER","base64"); 
$struct = imap_fetchstructure($mbox, $uid); 
$ret_info = array(); 


$ret_info = $this->scan($struct->parts,0); 
return $ret_info; 
} 

$structure = imap_fetchstructure($mbox, $message_id); 
$mailDivided= $mailObj->read_all_parts($mbox,$message_id); 

if(count($mailDivided)!=0){ 
    /* ////////////////////////////////////////////////////////////////////// */ 
    $plainText = 1; 
    foreach ($mailDivided as $key=>$parts) { 
     if($parts['pid']=='1.2' && $parts['encoding']=='QUOTED-PRINTABLE'): 
      $plainText = '1.2'; # which means this is contains html text 
     endif; 

     if($parts['pid']=='1.2' && $parts['encoding']=='7BIT'): 
      $plainText = '1.2'; # which means this is contains html text 
     endif; 

     if($parts['pid']=='1.2' && $parts['encoding']=='8BIT'): 
      $plainText = '1.2'; # which means this is contains html text 
     endif; 

     if($parts['pid']=='1.1.2' && $parts['encoding']=='QUOTED-PRINTABLE'): 
      $plainText = '1.1.2'; # which means this is contains html text 
     endif; 

     if($parts['pid']=='2' && $parts['encoding']=='QUOTED-PRINTABLE'): 
      $plainText = '2'; # which means this is contains html text 
     endif; 
    } 
    /* ////////////////////////////////////////////////////////////////////// */   
    $mymail = imap_fetchbody($mbox,$message_id,$plainText); 
    if(imap_base64($mymail)){ 
     print "This is imap_base64 <br>"; 
     $mymailBody = imap_base64($mymail); 
     $mymailBody = nl2br($mymailBody); 

    }else if (imap_qprint($mymail)){ 
     print "This is imap_qprint <br>"; 
     $mymailBody = imap_qprint($mymail); 

    }else{ 
     if ($plainTex==1){ 
      print "This is nl2br <br>"; 
      $mymailBody = nl2br($mymail); 
     }else{ 
      print "This is quoted_printable_decode <br>"; 
      $mymailBody = quoted_printable_decode($mymail); 
     } 
    } 
    /* ////////////////////////////////////////////////////////////////////// */ 
}else{ 
    print "This is encodingMailbody <br>"; 
    $mymail = imap_fetchbody($mbox,$message_id,'1'); 
    $mymailBody = $mailObj->encodingMailbody($mymail,$structure->encoding); 
    $mymailBody = nl2br($mymailBody); 
} 

Я проверял и пытался все возможные вещи вещь помогает мне.

+0

Возможно, потому, что цвета не определены в HTML, но во внешних таблицах стилей? – ACJ

+0

@yvytty Это система бронирования отелей, которую я сделал, многие сотрудники будут использовать это, и я не хочу давать gmail, и это будет неуправляемо. 2. Это как система тикета, система будет идентифицировать, и когда электронное письмо будет восстановлено, оно обновит профиль клиента по электронной почте, чтобы сотрудники могли проверять ожидающие сообщения. 3. Я действительно не понимаю, как Outlook и другие автономные программы показывают почту хорошо – Ahmed

+1

@yvytty ok позвольте мне объяснить подробности ;-) Туристическая компания с 200 менеджерами не может контролировать, что происходит с этим 200 персоналом, когда они взаимодействуют с клиентами. Таким образом, система использует только один адрес электронной почты, и клиенты никогда не будут иметь индивидуальных писем сотрудников, и у них их нет, и мы не будем предоставлять индивидуальный адрес электронной почты. когда сотрудники отправляют почту, она перейдет от [email protected], а гость также ответит на [email protected], что мое программное обеспечение делает, это будет идентифицировать клиента. Mr.abc принадлежит персоналу Miss.xyz. – Ahmed

ответ

0

Есть ли что-то общее в сообщениях, которые ломаются по сравнению с теми, у кого нет? На первый взгляд кажется, что набор символов может отличаться.

Связанный пост здесь: mail reading in php with imap

Кроме того, я хотел бы попробовать, глядя на заголовок электронной почты, чтобы увидеть, если они отформатированы по-разному, так как различные структуры отправителей заголовок электронной почты по-разному.

+0

Извините, я пробовал все Это не сработало http: // stackoverflow.com/questions/10462212/mail-reading-in-php-with-imap/16881229 – Ahmed

+0

Похоже, что нет ответа на мою проблему – Ahmed

Смежные вопросы