Intereting Posts
Преобразование PHP – UTF-16 в UTF-8 (hex) html-encode output && неправильная строковая ошибка Плагин загрузки файлов, расположенный в webroot, игнорирует динамические изменения в целевой папке Проверьте, существует ли экземпляр класса, если не создать экземпляр Obfuscate PHP code json_decode (json_encode (индексированный массив)) дает NULL Php читает содержимое файла сетевого файла Как получить значения внутри <! ]> с помощью php DOM? Как подавать данные серии, которые имеют значения оси х и y в линейных диаграммах? PHP: Невозможно изменить 404 код состояния, но нет ошибки в заголовке () Я не могу начать работу с приложением Zend Framework 2 скелета Отправка формы методом POST и полимерным железом? Не удалось отправить электронное письмо с помощью CodeIgniter Как передать полный список / иерархию ролей безопасности в класс FormType в Symfony2? Проверьте, содержит ли строка определенное число

Как использовать IMAP в PHP для получения содержимого тела пользователя?

Я не могу получить содержимое тела электронной почты.

Это мой код

<?php /* connect to server */ $hostname = '{myserver/pop3/novalidate-cert}INBOX'; $username = 'username'; $password = 'password'; /* try to connect */ $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Tiriyo: ' . imap_last_error()); //echo $inbox; /* grab emails */ $emails = imap_search($inbox,'ALL'); /* if emails are returned, cycle through each... */ if($emails) { /* begin output var */ $output = ''; /* put the newest emails on top */ rsort($emails); /* for every email... */ foreach($emails as $email_number) { //$email_number=$emails[0]; //print_r($emails); /* get information specific to this email */ $overview = imap_fetch_overview($inbox,$email_number,0); $message = imap_fetchbody($inbox,$email_number,2); /* output the email header information */ $output.= '<div class="toggler '.($overview[0]->seen ? 'read' : 'unread').'">'; $output.= '<span class="subject">'.$overview[0]->subject.'</span> '; $output.= '<span class="from">'.$overview[0]->from.'</span>'; $output.= '<span class="date">on '.$overview[0]->date.'</span>'; $output.= '</div>'; /* output the email body */ $output.= '<div class="body">'.$message.'</div>'; } echo $output; } /* close the connection */ imap_close($inbox); ?> 

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

Можете ли вы помочь мне исправить эту проблему?

Я нашел решение, ошибка с этой строкой

 $message = imap_fetchbody($inbox,$email_number,2); 

Теперь я использую

 $message = imap_fetchbody($inbox,$email_number, 1.2); 

Получить содержимое тела в формате text / html

Ниже я дал данные о доступных вариантах. Это может быть

 ()Root Message Part (multipart/related) (1) The text parts of the message (multipart/alternative) (1.1) Plain text version (text/plain) (1.2) HTML version (text/html) (2) The background stationary (image/gif) 

Компонент Zeta Mail позволяет гораздо удобнее получать почту из IMAP и POP и может анализировать входящие письма в красивую и чистую структуру объектов, чтобы вы могли легко справиться с этим.