如何为不同的环境设置不同的azure sendgrid帐户?

时间:2016-02-10 10:30:53

标签: email azure sendgrid

我们正在使用azure发布我们的应用程序,我们为开发,舞台和产品提供了三种不同的网络应用程序。

参考以下链接

https://azure.microsoft.com/en-us/documentation/articles/sendgrid-dotnet-how-to-send-email/

我们在azure中配置了sendgrid帐户,我们可以在所有三个环境dev,stag和prod中发送没有任何问题的电子邮件。

注意:我们对dev,stage和prod使用相同的sendgrid帐户。

问题:

现在,为了跟踪和计费目的,我们决定为dev,stag和prod使用不同的sendgrid帐户。即,

Azure SendGrid帐户1 - dev

Azure SendGrid帐户2 - stag

Azure SendGrid帐户3 - prod

但我们不知道如何通过azure portal完成,当我们尝试它时不允许。

请建议一些步骤或链接来完成此操作,以便我们可以计划发布。提前致谢

2 个答案:

答案 0 :(得分:1)

SendGrid支持子用户,因此您可以拥有父帐户和两个或三个子用户,具体取决于您是否也想通过父帐户发送。您可以在SendGrid文档上read about subusers。如果您有任何问题,请告诉我。

答案 1 :(得分:1)

在文章的大约一半时间内,您提供了一个链接供您查看:

enter image description here

screenshot from article

您可以添加更多应用设置,例如:

SENDGRID_DEV_APIKEY,SENDGRID_STAGE_APIKEY,SENDGRID_PROD_APIKEY

然后在您的代码中检查代码运行的环境并使用相应的应用程序设置/ api密钥。

var apiKey = "";

//GetCurrentEnvironment() is a method you would write that contains logic to determine what "environment" is being used.

if (GetCurrentEnvironment() == "dev") {
  apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_DEV_APIKEY");
} else if (GetCurrentEnvironment() == "stage") {
  apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_STAGE_APIKEY");
} else if (GetCurrentEnvironment() == "prod") {
  apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_PROD_APIKEY");
} 

var transportWeb = new Web(apiKey);