我已经从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工作得很好。
答案 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)
,这意味着它已排队等待投放。