ssmtp is also my go-to for this. Or dma (DragonFly Mail Agent) - if available - which provides a queue in case the delivery to the smarthost fails. But as it’s not running as a daemon (saving resources), so you have to setup a regular cronjob to process the queued messages.