Estou um pouco perplexo sobre como gerenciar SmtpClient agora que ele é descartável, especialmente se eu fizer chamadas usando SendAsync. Presumivelmente, não devo chamar Dispose até que SendAsync seja concluído. Mas devo chamá-lo (por exemplo, usando "usando"). O cenário é um serviço WCF que envia e-mails periodicamente quando as chamadas são feitas. A maior parte do cálculo é rápida, mas o envio de e-mail pode levar cerca de um segundo, portanto, o Async seria preferível.
Devo criar um novo SmtpClient cada vez que enviar um e-mail? Devo criar um para todo o WCF? Socorro!
Atualizar Caso faça diferença, cada e-mail é sempre customizado para o usuário. O WCF é hospedado no Azure e o Gmail é usado como remetente.