I’m planning a service (in a LAMP environment) that sends time sensitive email notices to members. Is there a way to find out if the email was undelivered or bounced?
No. Any properly configured mail server will simply delete any undeliverable mail without returning a response. Where a server does return a response it allows spammers to tell which emails they sent actually got delivered and which didn’t so that in future they can limit the spam they send to that server to just the email addresses that actually exist.
I have vague memories of enclosing a link to an image on your server then counting from logs how many times the image was viewed.
Makes sense but undeliverable notices do get sent to the sender. Get them from hotmail all the time (mailbox full). The receiving server sends them out unless black hole is specified. If I’m not mistaken these are sent to “Return-path:” Can I catch these?
It might not answer the question exactly but it opens possibilities. The link to an “image” does not have to be to an image, it can be to a script.
<img src="http://mydomain.com/script.php?id=myusersID" />
That’s why email programs now default to disabling linked images and only displaying embedded images by default. The spammers were containing a 1x1 pixel transparent image on their site that they linked into the emails that they sent and insecure email programs would then add an entry to the spammers log indicating that some fool had actually opened their spam.
Any indications that you do get that email wasn’t delivered indicates that the recipient’s mail server is insecure and broadcasting information to spammers as to what email addresses exist on that server. In that case the most likely reason that your email cannot be delivered is because the recipient’s mailbox is full due to all the spam sent to them.
Where their email server and email program are properly secured to prevent spammers from knowing whether their email address exists or not then any emails you send them that cannot be delivered will not tell you that they didn’t get there.