ASP.NET MVC: Enviar e-mail usando SendAsync (System.Net.Mail)
-
06-09-2019 - |
Pergunta
Existe alguma maneira em MVC para obter o System.Net.Mail SendAsync ao trabalho, em vez do bloqueio método de envio?
Eu tentei usá-lo, mas bateu o "Página de iniciar uma operação assíncrona tem que ter o atributo Async" de erro, que eu obviamente não pode resolver (ou pode I?), Porque não há nenhuma página ASPX com uma directiva @Page onde Eu poderia adicionar o atributo Async.
Ajuda é muito apreciada: (
Solução
Parece que você quer apoio Asynchronous para ASP.NET MVC . Consulte também " Estender ASP.NET MVC de Acção Asynchronous ".
Este SO questão também é relevante.
Outras dicas
Se você estiver usando um serviço de terceiros, como o Gmail para enviar seu e-mail e contando com SendEmail
ou SendAsync
você pode querer configurar o seu próprio servidor SMTP que irá retransmitir para gmail. A vantagem é que SendEmail
vai voltar muito mais rápido e você pode ser capaz de esquecer a coisa toda assíncrona.
Dessa forma, se gmail rejeita você, por qualquer motivo o e-mail ainda vai sentar-se na sua fila local.
Esta é uma maneira rápida e suja para obter email configuração pouco confiável envio.
Instruções (não pessoalmente testados, mas eu fiz isso anos atrás *) ou ver isso para o Windows 7
* é claro que eu só me lembrava eu ??fiz isso depois de passar um longo tempo convertendo até assíncrona: - (
Você pode querer considerar colocar o e-mail em uma tabela de banco de dados e, em seguida, ter um daemon que envia e-mails através do processamento da fila.
a) if youre not sending billions of emails you can have a log of what you sent
b) you can resend if something fails.
depende quão importante esses e-mails são, mas se eles são importantes do ponto de vista de negócios e mustnt se perder, então você deve usar essa abordagem.