Вы используете устаревшую версию sendgrid C # SDK, которая указывает на V2 API.Текущая версия API - V3.Документ, за которым вы следите, не обновляется.В настоящее время я занимаюсь обновлением документа.Вам нужно добавить нижеприведенное пространство имен в вашем сервисе -
using SendGrid;
using SendGrid.Helpers.Mail; //optional if you want to use the MailHelper class
, а затем использовать приведенный ниже код в вашем методе configSendGridasync
-
private async Task configSendGridasync(IdentityMessage message)
{
var apiKey = Convert.ToString(ConfigurationManager.AppSettings["SendGridApiKey"]);
var client = new SendGridClient(apiKey);
var myMessage = new SendGridMessage();
myMessage.AddTo(new EmailAddress(message.Destination));
myMessage.SetFrom(new EmailAddress("Joe@contoso.com", "Joe S."));
myMessage.SetSubject(message.Subject);
myMessage.AddContent(MimeType.Text, message.Body);
myMessage.AddContent(MimeType.Html, message.Body);
try
{
var response = await client.SendEmailAsync(msg);
}
catch(Exception err)
{
Trace.TraceError("Failed to create Web transport: ."+err.message);
await Task.FromResult(0);
}
}
Вам необходимо установить пакет Sendgrid из nuget, используяприведенная ниже команда перед написанием кода -
Install-Package Sendgrid -Version 9.10.0
Полный код подобен приведенному ниже -
using SendGrid;
using SendGrid.Helpers.Mail;
public class EmailService : IIdentityMessageService
{
public async Task SendAsync(IdentityMessage message)
{
await configSendGridasync(message);
}
// Use NuGet to install SendGrid (Basic C# client lib)
private async Task configSendGridasync(IdentityMessage message)
{
var apiKey = Convert.ToString(ConfigurationManager.AppSettings["SendGridApiKey"]);
var client = new SendGridClient(apiKey);
var myMessage = new SendGridMessage();
myMessage.AddTo(new EmailAddress(message.Destination));
myMessage.SetFrom(new EmailAddress("Joe@contoso.com", "Joe S."));
myMessage.SetSubject(message.Subject);
myMessage.AddContent(MimeType.Text, message.Body);
myMessage.AddContent(MimeType.Html, message.Body);
try
{
var response = await client.SendEmailAsync(msg);
}
catch(Exception err)
{
Trace.TraceError("Failed to create Web transport: ."+err.message);
await Task.FromResult(0);
}
}
}
Вот ссылка на пример кода:
https://github.com/sendgrid/sendgrid-csharp/blob/master/USE_CASES.md