Я бы порекомендовал поставить в очередь электронное письмо, которое затем отправлялось отдельным процессом (либо службой, либо рабочим потоком). Первоначально это немного сложнее, но в конечном итоге окупается.
Серверы электронной почты могут работать в автономном режиме или работать медленно, поэтому принуждение пользователя ждать может привести к ухудшению работы вашего приложения.
Если, например, вы отправляете электронное письмо с подтверждением регистрации, возможно, вам также потребуется отправить дополнительное электронное письмо позже, если оно не подтверждено в течение некоторого периода, например, 1 дня. Это становится проще с инфраструктурой, поддерживающей проект в очереди.