When I send bulk emailsto many people I want to get reports like "how many delivered, how many failed, who opened, who didn't open etc.".

Is this possible with PHP, if so which PHP mail package would be the best.

Thanks in advance

Normally, you only get the emails that bounce back because of a bad address (coming back to the sender email address). Some systems have the ability to request a confirmation but I don't see this used much any more and it requires the user at the other end to willingly confirm it (which many won't). With the exception of bounce-backs, I think that you need to consider email to be a one-way process and you won't ever know how many really got opened.

I understand what you mean but I still want statistics.

Then you probably want to look into using a 3rd party system for sending these bulk emails. There are lots of providers that supply this functionality, at a cost of course.

Are two I am familiar with, StreamSend being one i've done a lot of integration with.

In an nutshell they usually inject some kind of 1x1px tracking image to tell when the email has been opened. Rewrite the urls in the emails so that they go through a redirection script of some kind to track the number of users who clicked on a link. And, I'm assuming they're monitoring the mail queue and mail logs for undeliverables etc. Many of these services are designed to prevent you from getting blacklisted as well which bulk mailing will result in, real quick at times.

Just my $0.02 hope it helps.