in reply to Sending Emails

For sending email I can recommend Mail::Sender. But you need a smtp-server to send it. It doesn't matter, whether this smtp-server is on your server or on an other server. Mail::Sender also provides auth-methods.

To validate an email-address you should use Mail::RFC822::Address or any suitable module.