как я могу отобразить содержимое электронного письма на веб-сайте?


Я хотел бы отобразить основное содержимое электронного письма. Я пробовал IMAP на php, но что-то ОЧЕНЬ не так. IMAP не принимает текст моего сообщения. Он улавливает ТОЛЬКО подпись в теле. Поэтому я ищу альтернативные методы чтения основного содержимого электронной почты на веб-странице.

Вот оригинал моего электронного письма:

Http://pastebin.com/WQra335P

Размытие заявления об отказе от ответственности/авторских прав захватывается IMAP, но больше ничего в тело выставляется на всеобщее обозрение. у кого-нибудь есть альтернативные методы чтения электронной почты с gmail или любого другого сайта, которые могут отображать содержимое на веб-странице?

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

<?php
    /* connect to gmail */
    $hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
    $username = '[email protected]';
    $password = 'password';

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

    /* 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) {

            /* get information specific to this email */
            $overview = imap_fetch_overview($inbox, $email_number, 0);
            $message = imap_fetchbody($inbox, $email_number, 2);
            echo $message;
            echo imap_qprint($message);
            $message = imap_qprint($message);
            echo imap_8bit ($message);
            $DateFormatted = str_replace("-0500", "", $overview[0] -> date);

            /* output the email header information */
            $output .=  $overview[0] -> subject ;
            $output .=  $DateFormatted ;

            //$bodyFormatted = preg_replace("/This e-mail(.*)/","",$message);
            //$bodyFormatted = preg_replace("/Ce courriel(.*)/","",$bodyFormatted);
            /* output the email body */
            $output .=  $message;

        }

    echo $output;

    }

    /* close the connection */
    imap_close($inbox);

?>
Author: DmitryK, 2011-12-02

4 answers

В дополнение к тому, что предложил ДмитриК,

Добавление приведенного ниже позволяет все работать нормально без случайных знаков "=". Str_replace используется для удаления символов "=", созданных на страницах.

$message = imap_fetchbody($inbox, $email_number, "1.1"); 
$message = str_replace("=", "", $message);

Я не знаю на 100%, почему "=" генерируются случайным образом, но это, скорее всего, связано с какой-то проблемой шифрования со стороны сервера Exchange, поскольку нашему серверу около 10 лет.

 3
Author: Bulvak, 2011-12-12 15:48:46

Вы имеете дело с сообщениями, состоящими из нескольких частей (посмотрите на образец электронной почты pastebin). В качестве теста попробуйте использовать эту строку:

$message = imap_fetchbody($inbox, $email_number, "1.1"); 

Версия с простым текстом соответствует версии 1.1 Версия HTML - 1.2 Подпись находится в следующей части - это 2. И это то, что вы получаете в своем примере кода.

 2
Author: DmitryK, 2011-12-09 13:30:59

Есть ли у вас доступ к исходному содержимому электронной почты (материал со всеми заголовками и т. Д.)

Если да, попробуйте использовать анализатор электронной почты plancacke

Я использовал его раньше с большим успехом.

$emailParser = new PlancakeEmailParser(...raw email content...);

$emailTo = $emailParser->getTo();
$emailSubject = $emailParser->getSubject();
$emailCc = $emailParser->getCc();
$emailDeliveredToHeader = $emailParser->getHeader('Delivered-To');
$emailBody = $emailParser->getPlainBody();
$emailHtml = $emailParser->getHTMLBody();
 0
Author: Petah, 2011-12-12 09:23:56

В Gmail есть несколько других настроек IMAP, более внимательно следуйте исходному коду:

Http://davidwalsh.name/gmail-php-imap

 -1
Author: , 2011-12-02 23:54:17