Kolego musisz się zdecydować, w jaki sposób chcesz odczytać te adresy e-mail. Albo odczytujesz je w pętli czytając plik linia po linii, albo korzystasz z wyrażeń regularnych. Ty robisz obie rzeczy na raz, co w ogóle nie ma sensu. Jak te adresy są zapisywane? Jeśli każdy adres e-mail ma być w osobnej linijce, to brakuje Ci znacznika nowej linii w file_put_contents():
file_put_contents
($plik, trim($_POST['userInput']) . PHP_EOL
);
Wtedy można posłużyć się funkcją
file() z odpowiednim drugim parametrem (FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES). A do tego wystarczy prosta pętla foreach.
Funkcje file_get_contents() i file() zadziałają dla pliku maile.txt, którego rozmiar nie przekracza dajmy na to 50MB (czyli dla odpowiednio małego pliku). W przypadku większych plików trzeba czytać plik linia po linii.