I am familiar with PHP but quite new to IMAP processing. I try to read a mailbox for getting the body processed. This is working fine until the mailbox runs empty. After the first access to the empty INBOX (or even any folder or subfolder of the mailbox, I tried several settings), the imap_fetchbody() always returns false althought the box contains new mails again.
This is my code:
$imap = '{imap.strato.de:993/imap/ssl/novalidate-cert}INBOX';
$user = 'myuser';
$pass = 'mypassword';
$imapStream = imap_open($imap, $user, $pass);
$mailIds = imap_search($imapStream, 'ALL', SE_UID, 'ISO-8859-1');
foreach ($mailIds as $mailId) {
$info = imap_mailboxmsginfo ( $imapStream );
$body = imap_fetchbody ( $imapStream, $mailId, '1');
if($body) {
... do something with the body ...
}
imap_delete($imapStream, $mailId, FT_UID);
}
imap_close($imapStream, CL_EXPUNGE);
Could solve the Problem as follows:
This line gets all Mail-Ids from the Mailbox, cause of the flag=SE_UID):
$mailIds = imap_search($imapStream, 'ALL', SE_UID, 'ISO-8859-1');
But imap_fetchbody() wants to have a Mail-Number as default. Mail-Id and Mail-Number differ in most cases, so that imap_fetchbody() failed with the given Mail-Id, beacause this was a different int value as the expected Mail-Number.
Adding the Flag FT_UID in the following line solved the Problem:
imap_fetchbody($imapStream, $mailId, '1', FT_UID);
A typical IMAP newbie mistake? Never mind, I'm happy now :)
Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.
Find the answer in similar questions on our website.
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.
PHP (from the English Hypertext Preprocessor - hypertext preprocessor) is a scripting programming language for developing web applications. Supported by most hosting providers, it is one of the most popular tools for creating dynamic websites.
The PHP scripting language has gained wide popularity due to its processing speed, simplicity, cross-platform, functionality and distribution of source codes under its own license.
https://www.php.net/
Welcome to the Q&A site for web developers. Here you can ask a question about the problem you are facing and get answers from other experts. We have created a user-friendly interface so that you can quickly and free of charge ask a question about a web programming problem. We also invite other experts to join our community and help other members who ask questions. In addition, you can use our search for questions with a solution.
Ask about the real problem you are facing. Describe in detail what you are doing and what you want to achieve.
Our goal is to create a strong community in which everyone will support each other. If you find a question and know the answer to it, help others with your knowledge.