2016-06-20 3 views
0

Это код, который я использую. По какой-то причине он дает ошибку: «unauthorized». Любые идеи, почему это может произойти. Правильно настроен ключ Api.SendGrid V3 api с C# не может отправить почту

String apiKey = Environment.GetEnvironmentVariable("SG.7cSY-INMQnCwIzmonlgZvA.zNtNDycx......", EnvironmentVariableTarget.User); 
      dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com"); 

      Email from = new Email("[email protected]"); 
      String subject = "Hello World from the SendGrid CSharp Library"; 
      Email to = new Email("[email protected]"); 
      Content content = new Content("text/plain", "Textual content"); 
      Mail mail = new Mail(from, subject, to, content); 
      //Email email = new Email("[email protected]"); 
      //mail.Personalization[0].AddTo(email); 

      String ret = mail.Get(); 

      string requestBody = ret; 
      Console.WriteLine(ret); 

      try 
      { 
       dynamic response = sg.client.mail.send.beta.post(requestBody: requestBody); 
       Console.WriteLine(response.StatusCode); 
       Console.WriteLine(response.Body.ReadAsStringAsync().Result); 
       Console.WriteLine(response.Headers.ToString()); 
      } 
      catch (Exception ex) { 
       Console.WriteLine("SendGrid Error: {0}",ex.Message); 
      } 

ответ

0

В этой строке коды:

String apiKey = Environment.GetEnvironmentVariable("SG.7cSY-INMQnCwIzmonlgZvA.zNtNDycx......", EnvironmentVariableTarget.User); 

первый параметр является именем переменного окружения, которая содержит значение вашего SendGrid API Key, область видимости учетной записи пользователя. Если вы не используете переменные окружения и удобны с проставлением ваш ключ API в коде (не рекомендуется, но это позволит вам проверить, что он работает), вы могли бы сделать:

String apiKey = "SG.7cSY-INMQnCwIzmonlgZvA.zNtNDycx......"; 
+0

Итак, поправьте меня, если я Я ошибаюсь: 'EnvironmentVariable' и' AppSettings' очень похожи. Однако с помощью 'EnvironmentVariable' вы можете хранить различные API-ключи (разные конфигурации) для разных пользователей. –

+1

Я не знаком с AppSettings. Для EnvironmentVariable я понимаю, что вы можете либо получать значения из пространства текущего пользователя или системы. В приведенном выше коде я предполагаю, что вы настраиваете переменную среды в своем пользовательском пространстве. –

Смежные вопросы