Just a guess, but does nothing happen when you call that?
If so, then perhaps you should consider actually sending the email, instead of constructing the mail class instance and then discarding it at the end of the method...
Either:
1) Add this at the bottom of the Email method:
smtp.Send(mail);
Or
2) See here for a pre-built method:
Sending an Email in C# with or without attachments: generic routine.[
^]