SendGrid Api密钥仅限于沙盒测试电子邮件

SendGrid Api密钥仅限于沙盒测试电子邮件,sendgrid,Sendgrid,我刚刚与SendGrid签约,它看起来是一款不错的产品。它适用于我尝试过的场景,但现在我需要添加一些自动集成测试 我看到SendGrid有一个叫做Sandbox的东西可以启用,如果电子邮件验证正确,它在发送电子邮件时会返回OK状态,但电子邮件不会到达任何收件箱,也不会产生成本(没有消耗信用)。理论上,这听起来很符合我的要求 我已经用完全访问API密钥成功地尝试了它,但我不想在源代码中添加真正的API密钥。我想添加最受限制的一个(仅用于电子邮件测试) 我已经看到我可以配置API密钥的作用域,并且有

我刚刚与SendGrid签约,它看起来是一款不错的产品。它适用于我尝试过的场景,但现在我需要添加一些自动集成测试

我看到SendGrid有一个叫做Sandbox的东西可以启用,如果电子邮件验证正确,它在发送电子邮件时会返回OK状态,但电子邮件不会到达任何收件箱,也不会产生成本(没有消耗信用)。理论上,这听起来很符合我的要求

我已经用完全访问API密钥成功地尝试了它,但我不想在源代码中添加真正的API密钥。我想添加最受限制的一个(仅用于电子邮件测试)

我已经看到我可以配置API密钥的作用域,并且有一个名为Testing Email的选项,但是当我在沙箱模式下使用该受限密钥发送电子邮件时,我会收到一个未经授权的错误

问题是:我可以只为SendGrid中的沙箱模式的简单电子邮件测试配置一个非常受限的Api密钥吗?

我正在使用.NET客户端,这是我的代码,但我想这应该是无关紧要的

public async Task SendEmail(
    string fromEmail, 
    string fromName,
    string toEmail, 
    string subject,
    string plainTextContent,
    string htmlContent)
{
    var apiKey = "ThisIsTheApiKeyWithRestrictedPermissionsGeneratedAtMySendGridDashboard"
    var client = new SendGridClient(apiKey);
    var sandboxMode =
        new SandboxMode
        {
            Enable = true
        };

    var mailSettings =
        new MailSettings
        {
            SandboxMode = sandboxMode
        };
    var from = new EmailAddress(fromEmail, fromName);
    var to = new EmailAddress(toEmail);
    var message = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
    message.MailSettings = mailSettings;
    var result = await client.SendEmailAsync(message);
}

当api密钥具有以下权限时,我设法使其用于沙盒启用:

电子邮件测试(完全访问)

邮件发送