There are many third party Joomla extensions that take advantage of the email functionality in the Joomla core, however if it's not configured properly then you may have issues sending emails from your website.
Your site's email settings are located in your global configuration
I find SMTP to be the most reliable mailer type. If the email fails, you should get a delivery failure message to tell you why, unlike if you use PHP Mail which will attempt to send the email, but if it fails then it doesn't bother trying again. Your SMTP host will also attempt to retry sending the email if it initially fails.
You can test the email settings by doing the following:
my settings button
email new messages = yes
log in as a different administrator
components->messaging->new private message
select the original user account as the recipient, and send a test message.
Your email host should be able to provide the appropriate SMTP details. Alternatively, you could use a third party SMTP service such as SendGrid. You can sign up for a free account which lets you send up to 400 emails per day, or you can purchase a subscription if your email volume is higher.
Configuring SendGrid is easy, just put in the following in your global config in the mail settings.
SMTP Auth - Yes
SMTP User - sendgrid_username
SMTP Pass - sendgrid_password
SMTP Host - smtp.sendgrid.net