Итак, я перехожу в SendGrid для моей почтовой службы, и когда я отправляю электронное письмо, мой объект ответа создает X-Message-Id в случае, если электронное письмо было успешно поставлено в очередь. Однако это не учитывает отклоненные электронные письма, поэтому.
static async Task SendEmail()
{
var apiKey = ConfigurationManager.AppSettings["apiKey"];
var client = new SendGridClient(apiKey);
var from = new EmailAddress("test@example.com", "Example User");
var subject = "Hello World from the Twilio SendGrid CSharp Library Helper!";
var to = new EmailAddress("testUser@recipient.com", "Jeeno");
var plainTextContent = "Hello, Email from the helper [SendSingleEmailAsync]!";
var htmlContent = "<strong>Hello, Email from the helper! [SendSingleEmailAsync]</strong>";
var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
var response = await client.SendEmailAsync(msg);
Console.WriteLine(msg.Serialize());
Console.WriteLine("============================================1");
Console.WriteLine(response.StatusCode);
Console.WriteLine("============================================2");
Console.WriteLine(response.Headers);
Console.WriteLine("============================================3");
Console.WriteLine("\n\nPress <Enter> to continue.");
Console.ReadLine();
}
Я хотел бы создать запланированное задание, чтобы затем запрашивать все отклоненные электронные письма и извлекать их обратно на основе этого или любого другого идентификатора. Однако, при достижении конечной точки API sendgrip для отклоненных писем я получаю только объект ответа с отметкой времени, строкой электронной почты, строкой причины и строкой состояния. Нет ли способа сделать запрос, основанный на идентификаторе сообщения?
static async Task Execute()
{
var apiKey = ConfigurationManager.AppSettings["apiKey"];
var client = new SendGridClient(apiKey);
string queryParams = @"{
}";
var response = await client.RequestAsync(method: SendGridClient.Method.GET, urlPath: "/suppression/bounces", queryParams: queryParams);
Console.WriteLine(response.StatusCode);
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
Console.WriteLine(response.Headers.ToString());
Console.ReadLine();
}