Here is the thing, if you don’t use a certified SMTP server, your host will send the emails (via php mailer, swift mailer or whatever + sendmail which is an email delivery daemon) BUT when these emails will reach the destination, the server receiving them will check if they are valid or not.
This is done by checking if your email has a valid DKIM/Domain Key signature, if your domain allows your email server to send email in behalf of it (this is done by checking the spf records and rdns)
If your email is not valid, that server will return it to the sender server, this will happen several times, then if the receiving server will keep receiving unwanted emails from you, in the end, it will blacklist your domain and every email will be returned back to you. This will be a real problem for you, because in the future, if you really use a certified email server, your domain is still blacklisted so you will need to do long communications to take your domain out from the blacklists.
Another thing if not using a SMTP server, when you send email via mail() func, if you have 100000 to send, they will all be send at once and beside maybe killing your server, when those emails are out, the receiver server will blacklist you for sure if you send such high number of emails at once, so you will have to implement a queue so that just, say 1000 emails are sent at once.
And why getting all that pain ? If you have a smtp server, you can send an unlimited number of emails at once, because if your SMTP server is correctly configuated, it will throttle the number of emails that go out at once and you will have no problem.The email servers have their own queue mechanism, which is way better than anyone could implement in php.
Now, for example, i have a dedicated server for one of my websites, that uses iRedMail (this is an email solution that basically transforms your server into a certified email server for linux OS), and even if i have DKIM/Domain keys/RDS/SPF and everything it needs to mark my emails as being valid, there are times when yahoo sends my emails back as being deferred(dunno the reason, yahoo is plain stupid sometimes)
So my advice(i went this road before, i know what a nightmare it is, how many nights i lost in front of the command line to make it work) to you, in case you want to start this in the right way, buy a VPS, a cheap one, say at 10$/mo and install iRedMail email solution on it, then use that server as your domain mail server, it will be a win in the long run, i guarantee.
If you buy a VPS, be sure to buy at least 5 ips that will rotate once at X sent emails.
Also, make sure you document yourself on this mail issue, is a black hole but you need to understand how everything works in order to win the situation.
Warning, advanced linux knowledge is required.