This question is indeed too broad, so you're only going to get vague answers.
You should at least look at the mailing list example provided with PHPMailer, as that deals with the basics. PHPMailer is perfectly capable of high speeds - I have no trouble getting ~250 messages per second using it.
It helps to have a very cosy relationship with your mail server too - many open source ones are either not up to the job or are hard to configure, but 4,000/hour is a tiny amount in the scheme of things and default configs can work.
You need to have absolutely solid SPF, DKIM and DMARC configs, plus hypersensitive bounce handling (remailing a previously bouncing address on yahoo can get you blocked for ages).
Technical steps aside, it will take you a while to build up a sending reputation no matter what you do, and the behaviour of many large ISPs is pretty bad. For example I have a community site with several thousand members on hotmail, and occasionally one of them reports a notification as spam (it's all just forum traffic, no mailshots) - this results in the entire site being blacklisted and spamboxed for every hotmail member for about 2 months. Really not very clever or helpful.