It can't be done. E-mail is a fire and forget medium, once it left your server, you have no control over it.
You may request reading receipts using various mechanisms defined for example in RFC 3798 or RFC 3505, however the client is under no obligation to return them.
You may also employ a tracking pixel in an HTML mail, which is at least as unreliable since most clients by default don't show remote images.
As for forwarding, it is done on the receiving server and only the final recipient can determine (if anyone) if the mail has been forwarded. The original sender can not determine if the mail is going to be forwarded, especially not where. There is simply no protocol for it.
As a final word, consider the social side. When a client opens a mail, there is no guarantee that it's actually read by a human. In the end anyone can write an e-mail client that does things to the mail according to their taste and likes. There is no accurate definition of someone opening or reading the mail.