I may have jumped the gun on accepting this solution.
When I first tested it, it was on a small scale. I attempted to run it on account that had 153 unnecessary contacts and it had to be ran several times to delete all of them. As in first run it would delete 20 or so, next run it would delete 15, etc. The quantity the script deleted each time was not the same, but none the less it would not delete all of them.
The code is attached and the link above will explain what I was initially looking for. I need to run this once.
On Error Resume Next
Const olFolderContacts = 10
strEnding = "@email.com"
intLength = Len(strEnding)
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set colContacts = objNamespace.GetDefaultFolder(olFolderContacts).Items
For Each objContact In colContacts
If LCase(Right(objContact.Email1Address, intLength)) = LCase(strEnding) Or _
LCase(Right(objContact.Email2Address, intLength)) = LCase(strEnding) Or _
LCase(Right(objContact.Email3Address, intLength)) = LCase(strEnding) Then