使用SendGrid v3 C#发送邮件只是挂起

时间:2016-06-16 15:45:35

标签: c# sendgrid

我已经从v2升级到v3和SendGrid的(C#实现)。我可以让它发送邮件,但在最后一行之后,它只是挂在代码中:

dynamic sendGridAPIClient = new SendGridAPIClient(SendGridApi);

Email from = new Email(EmailAddress, EmailName);
Email to = new Email(EmailAddress, EmailName);
Content content = new Content("text/html", message);
Mail mail = new Mail(from, subject, to, content);

dynamic response = sendGridAPIClient.client.mail.send.post(requestBody: mail.Get());

这很烦人,因为它进入了一个带有该功能的黑洞,你不能调试它,不像v2工作得很好。

2 个答案:

答案 0 :(得分:0)

这是一个异步调用,所以试试这个:

dynamic response = await sendGridAPIClient.client.mail.send.post(requestBody: mail.Get());

答案 1 :(得分:0)

如果您无法使用await,请尝试以下方式:

var response = sendGridAPIClient.client.mail.send.post(requestBody: mail.Get()) .GetAwaiter().GetResult();

请注意response.StatusCode OK (200),反直觉,意味着SendGrid已将邮件消息投入虚空。

您需要StatusCode Accepted (202),这意味着它已排队等待投放。