The difference is one SendMailAsync uses the new async/await technology and the other uses the old callback technology. And more importantly, the Object that’s passed is simply passed into the event handler as the userState when the method completes.