0

我正在为一个网站编写电子邮件解析器,但我不确定最佳实践。具体来说,我不确定如何标记我已经解析过的电子邮件,所以我每次访问邮箱时都不会访问它们。

PS - 我从来没有做过任何电子邮件解析。

到目前为止,我正在使用 Flourish 库(以及 Codeigniter),我正在使用 cron 作业调用 cronjobs/parseMail

public function parseMail(){
    // Connect to a remote imap server
    $mailbox = new fMailbox('imap', 'mysite.com', 'user', 'password');

    // Retrieve an overview of all messages
    $messages = $mailbox->listMessages();

    foreach ( $messages as $message ){
        $messageBody = $message['text'];
        // parse it
    }
}

所以一旦我“处理”了一封电子邮件..我应该删除它吗?或者有没有更好的方法来确保我不会解析我已经完成的电子邮件?

奖励问题 > 我不需要在某处提供特定的电子邮件帐户吗?如果我有 "admin@mysite.com" 和 "addressForParsing@mysite.com" .. 在哪里指定我只对后者感兴趣?我只是从我解析的信息中提取“To:”还是有更好的方法?

4

1 回答 1

1
  1. Flourish:哇……这比普通的 PHP 函数更有用。您必须在 IMAP 外部存储消息 UID 以跟踪是否已处理某些内容。

  2. PHP/CodeIgniter:CI 似乎没有 IMAP 库,因此您使用的是 PHP 函数。imap-setflag-full()将允许您\Flagged在消息上设置标志,您可以使用该标志来跟踪消息是否已被处理。

  3. 自定义套接字代码:您可以使用类似此代码的代码来设置/获取自定义 IMAP 标志,但您可能必须阅读一些 IMAP RFC 才能使其他一切正常工作。

于 2013-01-18T17:43:53.440 回答