Why not use a cron job to call another script that checks to see if any new items were added to the database over the last 24 hours? Have cron call the script once every 12 or 24 hours (or maybe even once a month or once a week)
There are two advantages to this.
1, if you have a large number of items being added in a short amount of time, it would only send the customer 1 email every 12 or 24 hours letting them know what products are available...This would greatly eliminate alot of junk email and save you a massive amount of bandwidth.
2, It can be written in virtually any language, not just PHP...You could write it in C or Java or PERL just as easily if you wanted or needed to.
3, You would eliminate the wait the customer experiences as the script that the customer accesses would not send 500+ (or however many) emails...
Chris