If I do this:
public async Task<SendEmailServiceResponse> ExecuteAsync(SendEmailServiceRequest request)
{
....
var response = new SendEmailServiceResponse();
await client.SendAsync(mail, null); // Has await
response.success = true;
return response;
}
Then I get this:
Cannot await 'void'
But if I do this:
public async Task<SendEmailServiceResponse> ExecuteAsync(SendEmailServiceRequest request)
{
....
var response = new SendEmailServiceResponse();
client.SendAsync(mail, null); // No Await
response.success = true;
return response;
}
I get this:
The async method lacks 'await' and will run synchronously.
I'm clearly missing something, just not sure what.
As others have pointed out SendAsync
is a bit misleading. It returns a void
, not a Task
. If you want to await
a send mail call you need to use the method
SendMailAsync(MailMessage message)
or
SendMailAsync(string from, string recipients, string subject, string body)
Both of these return a Task
and can be awaited
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With