2016-06-20 11 views
0

Dies ist der Code, den ich verwende. Aus irgendeinem Grund gibt es einen Fehler: "nicht autorisiert". Irgendwelche Ideen, warum das passieren könnte. Der Api-Schlüssel ist korrekt konfiguriert.SendGrid V3 API mit C# kann keine Mail senden

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); 
      } 

Antwort

0

In dieser Codezeile:

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

der erste Parameter der Name des Umgebungsvariable, die den Wert Ihres SendGrid API Key hält, scoped auf das Konto des Benutzers. Wenn Sie nicht Umgebungsvariablen verwenden und sind bequem mit Ihrem API-Schlüssel in Ihrem Code setzen (nicht empfohlen, aber dies ermöglicht es Ihnen, testen, ob es funktioniert), würden Sie tun:

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

Ok, so korrigiert mich wenn ich bin falsch: "EnvironmentVariable" und "AppSettings" sind sehr ähnlich. Mit 'EnvironmentVariable' können Sie jedoch unterschiedliche API-Schlüssel (unterschiedliche Konfigurationen) für verschiedene Benutzer speichern. –

+1

Ich bin nicht vertraut mit AppSettings. Für die Umgebungsvariable verstehe ich, dass Sie entweder Werte aus dem aktuellen Benutzerbereich oder systemweit abrufen können. In dem obigen Code gehe ich davon aus, dass Sie die Umgebungsvariable in Ihrem Benutzerbereich einrichten. –

Verwandte Themen