Wszystkie pozostałe odpowiedzi są doskonałe, a spam ma z tym wiele wspólnego.
Ale w rzeczywistości istnieje prostsza, bardziej ogólna odpowiedź: funkcje. Wysyłanie wiadomości e-mail za pośrednictwem SMTP jest w rzeczywistości bardzo złożonym przedsięwzięciem. Nawet bez spamu nie chciałbyś wdrożyć całego zestawu funkcji protokołu SMTP w każdym kliencie e-mail; lepiej jest mieć dedykowane oprogramowanie (sendmail, postfix itp. to te duże w świecie * nix, Exchange w świecie Windows).
Na przykład, nawet w najbardziej podstawowym, „prawdziwy” serwer SMTP musi przynajmniej być w stanie rozpoznać rekordy MX. Następnie musi negocjować funkcje (głównie TLS, ale są też inne funkcje). Musi zarządzać kolejkami w celu ponowienia próby, generować raporty o niedostarczeniu itp.
A to tylko podstawowa, niezbędna funkcjonalność, bez której serwer nawet nie działałby. Nie obejmuje nawet takich rzeczy jak przepisywanie adresów, listy mailowe. Nie wspominając już o kilkunastu innych protokołach, które obsługują sendmail i innych, takich jak UUCP.
Wdrożenie SMTP w Outlooku, Thunderbirdzie itp. Jest bardzo minimalne - w najlepszym razie odpowiada to w przybliżeniu użyciu inteligentnego hosta na sendmailu.
Powiązany, ale odrębny problem: poczta e-mail jest tematem bardzo wrażliwym na bezpieczeństwo i chciałbyś, aby jeden lub kilka centralnie zarządzanych serwerów obsługiwało ją, zamiast potencjalnie setek lub tysięcy pojedynczych serwerów na każdym pulpicie.