0

我对此感到非常困惑,我有一封从日志文件生成的电子邮件,它会发送一封电子邮件,其中包含正文中的日志文件内容。

我在一个测试 gmail 帐户上对 imap 的东西和 php 进行了一些测试,使用以下代码我可以毫无问题地看到数百封电子邮件的整个正文:

$mailbox = "xxx@gmail.com";
$mailboxPassword = "xxxx";

$mailbox = imap_open("{imap.gmail.com:993/imap/ssl}INBOX", $mailbox, $mailboxPassword);

$mail = imap_search($mailbox,'ALL');

if(empty($mail)) die('No unread emails found!');

foreach ($mail as $key => $val) 
{

// Retrieving message headers
$headers = imap_headerinfo($mailbox, $val);

// Retrieving subject
$subject = $headers->subject;

ps我可以回显主题,一切都很好

 mb_internal_encoding("UTF-8");
 $subject = mb_decode_mimeheader(str_replace('_', ' ', $subject));

 $body_pre = imap_fetchbody($mailbox, $val, 1);
 $body = $body_pre ? imap_qprint(imap_fetchbody($mailbox, $val, 2)) : imap_qprint(imap_fetchbody($mailbox, $val, 1));

 if (empty($body))
    {
    $body = $body_pre;  
    }

现在代码可能很乱,我基本上接管了别人的代码并让它为我工作,我添加了 if empty 一个,因为一些身体返回空,一旦我补充说它工作正常。我知道这是由于俄语/法语编码,所以虽然信息显示正常,但俄语/法语字符显示不正确,但至少不是空的

无论如何,基本上我所做的是获取原始电子邮件,将其转发到这个测试帐户,运行该代码,如果我回显 $body,我可以看到每个电子邮件正文。

现在问题发生了,当我收到完全相同的电子邮件时,来自 txt 文件的所有相同的电子邮件日志基本上作为电子邮件发送,但是当我在收件箱上运行相同的查询时,基本上只有区别,他们有 FW:在主题中很好这是正文输出的内容:

SE0yIENyYXNoIExvZyBDb250ZW50cyBCZWxvdzo8YnIgLz48YnIgLz5Vc2VyIEVtYWlsOiBBbm9u LiAtIE5vdCBTdXBwbGllZDxhbm9uQGhvbGRlbW1hbmFnZXIuY29tPjxiciAvPkJ1aWxkIEluZm86 IDIuMC4wLjc2NjU8YnIgLz5Vc2VyIERlc2NyaXB0aW9uOiBOL0E8YnIgLz48YnIgLz5Mb2cgRmls ZSBDb250ZW50czogPGJyIC8 + PGJyIC8 + MDE6MTI6MTMuMTEwIFtNYWluOjEgLSBVbml0eUJvb3Rz dHJhcHBlci5SdW5dIDxiciAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX18gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICggICApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHwgLi0uICAgIF9fXyAuLS4gLi0uICAgICAuLS0uICAg IDxiciAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwvICAgXCAgKCAgICkgICAn

并且 body_pre 回显为空

我也尝试改成这个并呼应所有这些,它们都显示为空白

$body_pre0 = imap_fetchbody($mailbox, $val);
    $body_pre = imap_fetchbody($mailbox, $val, 1);
    $body_pre1 = imap_fetchbody($mailbox, $val, 1.1);
    $body_pre2 = imap_fetchbody($mailbox, $val, 1.2);
    $body_pre3 = imap_fetchbody($mailbox, $val, 2);
    $body_pre4 = imap_fetchbody($mailbox, $val, 2.0);
    $body_pre5 = imap_fetchbody($mailbox, $val, 2.1);
    $body_pre6 = imap_fetchbody($mailbox, $val, 2.2);
    $body_pre7 = imap_fetchbody($mailbox, $val, 2.3);
    echo "Body 0: <br /><br /><br />" . $body_pre0 . "<br />";
    echo "Body 1: <br /><br /><br />" . $body_pre . "<br />";
    echo "Body 1.1: <br /><br /><br />" . $body_pre1 . "<br />";
    echo "Body 1.2: <br /><br /><br />" . $body_pre2 . "<br />";
    echo "Body 2: <br /><br /><br />" . $body_pre3 . "<br />";
    echo "Body 2.0: <br /><br /><br />" . $body_pre4 . "<br />";
    echo "Body 2.1: <br /><br /><br />" . $body_pre5 . "<br />";
    echo "Body 2.2: <br /><br /><br />" . $body_pre6 . "<br />";
    echo "Body 2.3: <br /><br /><br />" . $body_pre7 . "<br />";

我有点迷茫,希望得到一些指导,所以我不会在新年前失去理智:)

该电子邮件有一堆机密内容,如果有帮助,我可以将其添加到所有内容中, 大多数电子邮件都很大,因此编辑所有机密信息需要很长时间,但如果您要求,可以这样做

4

1 回答 1

2

这对我来说看起来不像垃圾......它看起来像base64编码的html......

In [4]: print base64.b64decode(corpus)
HM2 Crash Log Contents Below:<br /><br />User Email: Anon. - Not Supplied<anon@holdemmanager.com><br />Build Info: 2.0.0.7665<br />User Description: N/A<br /><br />Log File Contents: <br /><br />01:12:13.110 [Main:1 - UnityBootstrapper.Run] <br />
                             ___                                <br />
                            (   )                               <br />
                             | | .-.    ___ .-. .-.     .--.    <br />
                             | |/   \  (   )   '
于 2012-12-30T22:51:27.297 回答