in reply to Checking for New Email

The problem you have is the definition of new. New according to what criteria? A simple solution would be to get the unique id (using the appropriate method) for each message and remember the 'last old one' in a file, then next time you access the account just skip messages until you reach the 'last old one'....

Alternatively delete all the 'old' ones (storing them in a file for future reference if required) that way all the emails in the account will be 'new'.

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

Replies are listed 'Best First'.
Re: Re: Checking for New Email
by fokat (Deacon) on Nov 21, 2001 at 02:47 UTC
    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.