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.
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.
root = tkinter.Tk()
buttons=[i for i in range(10)]
#If specific button is pressed, output "YES"
for num in buttons: