Здесь можно почитать.
Сталкивался с тем, что проверка через ValidateEmail пропускала иногда мертвые почты. Поэтому в проектах делал двойную проверку: сначала код ValidateEmail (позволяет быстро отсеять бо́льшую часть нерабочих аккаунтов), затем кубик получения почты с небольшим однократным ожиданием (секунд 5 по-моему).
Через сторонние DLL , типа майлкит. Поиском по форуму ищется, но лучше ИИ попросить код написать.
Ну и если именно майлкит использовать, то сразу надо искать по форуму как обходить конфликт версий DLL, так как в зенке уже используется и не совсем свежей версии, так сказать .