这是我通过 SendGrid 发送电子邮件的代码。
public Task<Result> Execute(string apiKey, string subject, string message, string email)
{
var client = new SendGridClient(apiKey);
string senderEmail = this.Configuration["Email:Address"];
string senderName = this.Configuration["Email:Name"];
var msg = new SendGridMessage()
{
From = new EmailAddress(senderEmail, senderName),
Subject = subject,
PlainTextContent = message,
HtmlContent = message
};
msg.AddTo(new EmailAddress(email));
var response = client.SendEmailAsync(msg);
return response;
}
当由 ASP.Net Core 身份代码调用时,它能够发送电子邮件确认和密码重置电子邮件。
但是,当我尝试使用自己的控制器操作(对于联系我们功能)发送电子邮件时,什么也没有发生。
这是控制器动作。
public async Task<JsonResult> SendContactEmail(int id, string message)
{
Page page = await this.Get(id);
var result = _emailSender.SendEmailAsync(page.Email, page.Subject, message);
return new JsonResult(result);
}
有没有办法解决这个问题?我没有收到任何异常,并且响应对象似乎没有任何有用的属性,例如来自 SendGrid 服务器的消息。
更新:
SendGrid 的 API 确实会返回信息丰富的结果。我已经更新了我的代码以返回这个。
https://github.com/sendgrid/sendgrid-csharp/blob/master/src/SendGrid/Response.cs