rogue/slayer/hunter, all with max stealth, invisibility ring, couple other fancy magical items,
the best way to fight a mage, is to get the drop on them.
If you're dealing with a theorycrafter player, you can't always count on getting into melee range, but the principle is correct. No matter the approach, the best chance for winning is in the surprise round.