This is anecdotal but here's the breakdown of top 10 e-mail providers from my database, does not look like a monopoly:
MariaDB > SELECT SUBSTRING_INDEX(email, '@', -1) AS domain, COUNT(*) AS cnt FROM accounts GROUP BY domain HAVING domain != '' ORDER BY cnt DESC LIMIT 10;
+-------------+-------+
| domain | cnt |
+-------------+-------+
| hotmail.com | 38015 |
| gmail.com | 16280 |
| yahoo.com | 4080 |
| o2.pl | 2321 |
| wp.pl | 2206 |
| live.com | 1415 |
| outlook.com | 814 |
| interia.pl | 609 |
| hotmail.es | 590 |
| live.se | 521 |
+-------------+-------+
10 rows in set (0.044 sec)