mail() - отправляется с локального сервера, не нуждается в наличии почтового сервера
smtp - можно как с локального так и с удаленного, необходим почтовый сервер. Можно использовать GMAIL и другие (проверять нужно, не помню). Например хост: smtp.gmail.com, логин example@gmail.com (ваш почтовый ящик) и пароль от него, порт и так далее.
стандартной функции mail() вам хватит с головой, просто нужно проверить ваш IP в спам базах и настроить SPF запись для домена (что бы не было проблем с доставкой)