To add to
tachyon's suggestion, if you're using the POP3 protocol to access your mailbox, you should use something called the
UIDL of the message for this purpose.
The UIDL is a unique identifier for each message. In practice, you can assume that different UIDLs mean different messages.
I would suggest you to store in a file or other form of stable storage, the list of UIDLs whenever you check a mailbox. You can then have three scenarios for each UIDL taken from the mailbox and the file:
- The UIDL from the server is already in the file, which means that this message is old and does not need to be "reported".
- The UIDL from the server is not in the file, which means that this message is new. Its UIDL must be added to the file and this message must be reported.
- The UIDL from the file was not reported by the server, which means that this message was deleted. It can be removed from the file.
I'm using the term "file" in a quite ample way. You should use a form of stable storage appropiate to your web application.
Regards.