我刚和SendGrid签约,看上去是个不错的产品。对于我尝试过的场景,它可以正常工作,但是现在我需要添加一些自动化的集成测试。
我看到SendGrid有一个叫做Sandbox的功能,如果电子邮件验证是正确的,它会在发送电子邮件时返回OK状态,但是邮件不会到达任何收件箱,也不会产生成本(不消耗信用)。从理论上讲,这听起来很适合我想要的。
我已经成功地尝试了一个完整的访问API密钥,但是我不想在我的源代码中添加一个真正的API密钥。我想添加一个最受限制的可能(仅为电子邮件测试)。
我已经看到我可以配置API密钥的范围,还有一个名为测试电子邮件的选项,但是当我在沙箱模式下用这个受限的密钥发送电子邮件时,我会得到一个未经授权的错误。
问题是:可以为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);
}
发布于 2020-06-15 06:59:01
当api密钥具有以下权限时,我设法让它为沙箱启用:
电子邮件测试(完全访问)
邮件发送
https://stackoverflow.com/questions/62387505
复制