SendGrid SendEmailAsync()-引发无法捕获的异常 [英] SendGrid SendEmailAsync() - uncatchable exception thrown

查看:116
本文介绍了SendGrid SendEmailAsync()-引发无法捕获的异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

注意:对于关闭此问题的版主来说,它与一般的nullref问题完全不同。如果你读了我的帖子,那显然是SendGrid特有的。

我相信我非常接近documented SendGrid usage

public async Task<string> SendEmailSendGrid(string emailTo, string subject, string body) {
  var apiKey = SafeTrim(ConfigurationManager.AppSettings["SendGridAPIKey"]);
  var client = new SendGridClient(apiKey);
  var from = new EmailAddress(SafeTrim(ConfigurationManager.AppSettings["SendGridEmail"]));
  var to = new EmailAddress(emailTo);
  var msg = MailHelper.CreateSingleEmail(from, to, subject, string.Empty, body);

  try {
    var response = await client.SendEmailAsync(msg);
    //return response;
    return "SUCCESS";
  } catch (Exception ex) {
    return "ERROR in SendEmailSendGrid(): " + ex.Message;
  }
}

和呼叫者:

var result = utils.SendEmailSendGrid(decodedEmail, "email test", "This is a test email using SendGrid.");

和我每次收到的错误,即使它工作正常并且电子邮件实际上在我的收件箱中发送和到达:

对象引用未设置为对象的实例。

我验证了我的所有变量都按预期填充--没有一个变量为空。我将一个空字符串传递给纯文本参数(因为我总是需要HTML内容),但我也尝试传递一些内容,但没有产生任何影响;同样的错误。

一件奇怪的事情:它爆炸得如此厉害,以至于我的catch块永远不会被进入。相反,只要抛出异常,这个全屏窗口就会出现在我的VS2022

所以它正在工作并发送电子邮件,但为什么会出现严重的崩溃?我做错了什么?

推荐答案

您能试试我的方法吗? 我使用的是单实例方法,试一试,让我们看看。

public async Task SendAsync(IdentityMessage message)
    {
        
        var apiKey = new MvcApplication().SENDGRID_APIKEY;
        var client = new SendGridClient(apiKey);
        var msg = new SendGridMessage()
        {
            From = new EmailAddress("noreply@questersworld.net", "Questersworld Team"),
            Subject = message.Subject,
            
            HtmlContent = "<table width="80%"><tr><td><img src="http://www.questersworld.net/Images/quester.png" width="50" height="50"> Questers World <p><strong>Welcome, Questersworld Participant!</strong></p><br> We value your connection.<br><p>" + message.Body + "</p><p><a href="www.questersworld.net">visit www.questersworld.net</a> </p><br><strong>&copy; Questersworld.net</strong></td></tr></table>"
        };


        msg.AddTo(new EmailAddress(message.Destination, "Questersworld Participant"));
        var response = await client.SendEmailAsync(msg);
    }

不要介意我的信息。试一试,看看

这篇关于SendGrid SendEmailAsync()-引发无法捕获的异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆