0

这是我通过 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

4

0 回答 0