Как работает функция phpmail?
Она вызывает программу указанную в директиве sendmail_path с указанными там же параметрами, и передаёт ей сформированное письмо с текстом и заголовками.
Т.е. для её работы требуется какой-либо почтовый сервер который предоставляет подобный интерфейс, и займётся доставкой сообщения, от exim или postfix, до простейшего msmtp.
А что непонятного?
SMTP  - протокол. Используется для отправки со сторонних сервисов с авторизацией
mail() - функция php. Встроенная функция для отправки email
sendmail - почтовый сервер.