我正在尝试编写一个cron作业,用于检查邮箱中的邮件并对其进行一些转换。我正在使用PHP IMAP扩展并通过POP3访问邮箱(这是谷歌托管)。我如何使用PHP IMAP不断从邮箱中下载相同的邮件
我现在正在测试它,我希望能够在邮箱中收到一封邮件,并在该邮件中继续测试我的代码,直到我很高兴。
不幸的是,一旦我检查了该电子邮件,它将不再下载,并且我收到“邮箱为空”。任何人都可以帮我节省一些时间,让我知道如何继续检查我已经检查过的邮件吗?
我正在尝试编写一个cron作业,用于检查邮箱中的邮件并对其进行一些转换。我正在使用PHP IMAP扩展并通过POP3访问邮箱(这是谷歌托管)。我如何使用PHP IMAP不断从邮箱中下载相同的邮件
我现在正在测试它,我希望能够在邮箱中收到一封邮件,并在该邮件中继续测试我的代码,直到我很高兴。
不幸的是,一旦我检查了该电子邮件,它将不再下载,并且我收到“邮箱为空”。任何人都可以帮我节省一些时间,让我知道如何继续检查我已经检查过的邮件吗?
当你获取通过POP3邮件,则有两种不同的选择:
您需要保留在服务器上。
还有一个叫做标志‘看到’的决定,WHI通信邮件未读给你。确保你处理这个标志是正确的,否则你可能会要求新的邮件,你的邮件不是新的。
imap_status()将设置读取标志,imap_num_msg()不会触及任何标志。
imap_fetchstructure()不仅读取消息结构,而且读取整个消息,我怀疑它也会标记读取的邮件。请确认当您在像thunderbird这样的客户端中将邮件明确标记为新邮件(或未读邮件)时,它是否会更改任何内容:总览中有一个绿色的泡泡,在读取邮件时变为黑色。点击它标记邮件未读。
这绝对是将消息留在服务器上(因为我可以通过标准客户端并仍然可以看到它在那里)。服务器或客户端维护了看到的标志吗?看到的 – Gausie 2012-02-08 16:52:18
保持在服务器上。当您使用普通邮件客户端(例如thunderbird)访问此帐户时,您会看到邮件为新邮件或未读邮件 - 或者不是。 – 2012-02-08 18:54:30
您确定,您的标准客户端没有缓存邮件? – 2012-02-08 19:00:23
你能展示一些你已经试过的代码吗? – Alex 2012-02-08 16:45:12
'$ imap = imap_open(“{pop.gmail.com:995/pop3/ssl}INBOX”,“[email protected]”,“password”);''会在运行两次邮箱时出现错误。 – Gausie 2012-02-08 16:57:04
接下来是什么,在imap_open之后? – 2012-02-08 19:46:28