我正在尝试将用户输入的电子邮件地址中的电子邮件发送到同一用户通过CSHTML文件中的表单提交输入的电子邮件地址列表,并使用SendGrid的Web API代码和此处的大多数教程( https://docs.microsoft.com/en-us/azure/sendgrid-dotnet-how-to-send-email)。在表单提交后,我使用了以下代码。
<form method="post"> .................................
input id="send_final" style="visibility:hidden;height:0" type="submit">
</form>
@{
if (IsPost)
{
var contact_emails = Request.Form.GetValues("contact email");
var contact_first_names = Request.Form.GetValues("first name");
var contact_last_names = Request.Form.GetValues("last name");
var sender_email = Request.Form["sender contact email"];
var sender_first_name = Request.Form["sender first name"];
var sender_last_name = Request.Form["sender last name"];
var response_st = "";
async Task PostMessage() {
var client = new SendGridClient("MY API KEY");
var msg = new SendGridMessage();
msg.SetFrom(new EmailAddress(sender_email, sender_first_name + " " + sender_last_name));
var recipients = new List<EmailAddress> { };
for (var i = 0; i < contact_emails.Length; i++)
{
recipients.Add(new EmailAddress(contact_emails[i], contact_first_names[i] + " " + contact_last_names[i]));
}
msg.AddTos(recipients);
msg.SetSubject("Home Property Reviews");
msg.AddContent(MimeType.Text, "Hello World plain text!");
msg.AddContent(MimeType.Html, "<p>Hello World!</p>");
var response = await client.SendEmailAsync(msg);
response_st = response.ToString();
}
PostMessage().Wait();
PostMessage().Dispose();
System.Diagnostics.Debug.WriteLine(response_st);
}
}
由于某种原因,“等待”命令将永远占用时间,并且等待至少10分钟后没有任何结果。我通过尝试向自己发送电子邮件进行了测试,没有看到发送给我的新电子邮件或我的SendGrid帐户中的任何更新。我不确定为什么会这样。