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

ibe*_*dev 5 sendgrid

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

我看到 SendGrid 有一个名为 Sandbox 的东西可以启用,如果电子邮件验证正确,它将在发送电子邮件时返回 OK 状态,但电子邮件不会到达任何收件箱,也不会产生费用(不消耗积分)。从理论上讲,这听起来很适合我想要的。

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

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

问题是:我可以在 SendGrid 中使用沙箱模式配置一个非常受限的 Api Key 来进行简单的电子邮件测试吗?

在此输入图像描述

我正在使用 .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);
}
Run Code Online (Sandbox Code Playgroud)

ibe*_*dev 6

当 api 密钥具有以下权限时,我设法让它启用沙箱:

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

邮件发送

在此输入图像描述