You should be able to use Exchange Online REST API to determine delivery/bounce, but as for opened or clicked, you will have to resort to techniques such as read receipts and email tracking.
You can find an example of email tracking here, an except of which is below ... http://blog.giftbit.com/email-open-tracking-why-and-how-to-do-it
Email open tracking is a simple concept and implementation:
Create a standard webapp driven URL in your product that accepts your tracking information via the URL or in parameters, but always return an image content type and corresponding binary image data (such as ‘image/gif’, and usually a 1×1 pixel transparent .gif).
Embed the URL as the src of a tag in all outgoing emails you wish to track, adding appropriate information to the URL to identify the email and information you wish to track. Because the returned content type is an image, it will render properly as an image.
Done! Whenever an email is opened and that tiny invisible image is rendered, your URL will be called. Capture and store the information to your database, etc.