I would be careful using direct exclusions (e.g. IndexOf(), Contains/Like statements, etc) because it could mean legit emails never get sent.
E.g. Haydummyers@xyz.com would not get your email because it has 'dummy' in it.
As well, if a person has an online alias (notAdummy69@xyz.com) or a business has dummy in its name (email@example.com) you would exclude them.
It also comes down to the question of "Who are you to judge the legitimacy of personal information a person submits to you?" I believe in most places you are considered 'Innocent until proven guilty' and I think that should apply here as well.
I personally think giving the customer the benefit of the doubt and at least attempting a single send is a far better experience and healthy relationship than automatically excluding them based on preconceived notions.
What you can do to take care of those bad email addresses to ensure deliverability is you check the domains for legitimacy (no @fake.com or @notanemail.com) to prevent hard bounces up front. Then run a daily query or export to find all the soft bounces from the previous day with 'not a real alias at domain' (or whatever the message/code is) and then unsubscribe them.
Through this you would greatly reduce risk (aka damage to sender rep) while increasing value via ensuring all legitimate emails are sent out - essentially creating a greater value to cost, increasing overall ROI.