Принимая во внимание, что вы могли бы написать свою собственную реализацию протокола SMTP, чтобы вы по сути выступали в качестве собственного SMTP-сервера (это даже не сложно сделать), вам все равно придется взаимодействовать с другими SMTP-серверами (то есть серверами получателей). И за последние 10 лет многие из этих серверов стали меньше доверять тому, с кем они будут общаться. Многие будут выполнять обратный поиск DNS, чтобы увидеть, совпадает ли IP-адрес, с которого вы отправляете, с IP-адресом, указанным в записи MX для вашего доменного имени. Если они не совпадают, сервер откажется принимать почту от вас.
Кроме того, многие интернет-провайдеры заблокировали порт 25 (используемый SMTP), поэтому вы не можете отправлять электронную почту из их сетей, кроме как через их SMTP-серверы. Это не позволяет клиентам использовать свои высокоскоростные соединения для рассылки спама. (По крайней мере, это усложняет ситуацию.)
Итак, технически ответ на ваш вопрос да: вы могли бы написать код, который действует как SMTP-клиент для отправки почты. Но в практическом применении это становится намного сложнее из-за ограничений, наложенных интернет-провайдерами и SMTP-серверами провайдеров-получателей.
Если вы заинтересованы в написании SMTP-кода, вы можете найти следующую инструкцию: