Если я правильно понял вопрос, то ты спрашиваешь, можно ли написать такой рассыльщик, самому.
Если да, то здесь появятся два под-вопроса:
1) Как успеть отправить 4 млн. писем за вменяемое время?
2) Как не попасть в спам?
Отправку писем можно сделать в обычной связке [железо] + [программа] + [отправщик]
Железо - хороший сервер с широким каналом
Программа - пишешь на чем угодно, хоть на php
Отправщик - настроенный postfix (нужно убрать лишние проверки, оптимизировать настройки очереди и т.д.)
А вот как не попасть в спам - это совсем другой вопрос
Помимо того, что есть определенные требования к подписи писем (DKIM, SPF, DMARC), есть еще целая куча тонкостей, которые касаются правил отписки (FBL, List-Unsubscribe headers и т.д.), рейтинга домена, рейтинга ip и т.д.
4 млн. пользователей - это очень большая база.
Судя по тому, что ты пишешь - это будет первая рассылка, следовательно такая большая отправка покажется всем почтовикам подозрительной.
Да и база, вероятно, не чищенная (будет много несуществующих адресов, спам ловушек и т.д.)
Поэтому с вероятностью 100% сделать с первого раза рассылку с доставкой 4 млн. писем не удастся.
Итого
Своими силами сделать можно, но долго и достаточно дорого + нужен определенный скилл :)