Sendgrid .NET (Como funciona para desenvolvedores)
O SendGrid , parte do Twilio SendGrid, oferece um serviço baseado em nuvem para ajudar os clientes a enviar e-mails de forma simples, agilizando os processos de comunicação. Ao criar uma conta SendGrid, você obtém acesso a recursos como retransmissão SMTP e chaves de API, tornando o envio de mensagens de e-mail mais eficiente. O servidor SMTP é o núcleo desse processo, pois permite que seus e-mails sejam enviados do seu servidor através do sistema SendGrid. O recurso de domínio autenticado verifica seu domínio. Como o SendGrid é de código aberto, você pode acessar seu repositório no GitHub e contribuir para sua modificação.
Neste guia, nosso objetivo é explicar os recursos e funcionalidades do SendGrid .NET, orientando você na configuração inicial, nas operações básicas e nos recursos mais avançados. Se você deseja enviar seu primeiro e-mail por meio de código ou otimizar suas campanhas de e-mail, este artigo é o ponto de partida para dominar o SendGrid .NET e sua integração com o IronPDF para manipulação de PDFs .
Primeiros passos com o SendGrid .NET
Primeiro, você precisa configurar o SendGrid .NET em seu projeto. Comece instalando o pacote SendGrid .NET . Utilize o Gerenciador de Pacotes NuGet para isso. Abra o Visual Studio e, em seguida, abra o Console do Gerenciador de Pacotes. Digite o seguinte comando:
Install-Package SendGrid

Este comando adiciona o SendGrid ao seu projeto. Após a instalação, configure sua conta SendGrid. Você precisa de uma chave de API. Acesse o site da SendGrid . Crie uma conta se você ainda não tiver uma. Após efetuar o login, acesse as Configurações. Encontre chaves de API . Clique em Criar chave de API . Dê um nome e selecione o nível de acesso. Copie a chave da API. Você usará isso em sua inscrição.
Exemplo de código básico
Agora, vamos enviar um e-mail. Crie uma nova instância do SendGridClient . Passe sua chave de API para o construtor. Em seguida, crie uma SendGridMessage . Defina os endereços de e-mail do remetente e do destinatário. Adicione um assunto e o conteúdo do e-mail. Por fim, utilize o SendGridClient para enviar a mensagem. Aqui está um exemplo básico:
using SendGrid;
using SendGrid.Helpers.Mail;
using System.Threading.Tasks;
// Asynchronous method to send an email using SendGrid
static async Task SendEmailAsync()
{
// Initialize a SendGrid client with your API key
var client = new SendGridClient("your_api_key");
// Create a new email message
var message = new SendGridMessage()
{
From = new EmailAddress("your_email@example.com", "Your Name"),
Subject = "Hello World from SendGrid",
PlainTextContent = "This is a test email.",
HtmlContent = "<strong>This is a test email.</strong>"
};
// Add a recipient to your email message
message.AddTo(new EmailAddress("recipient_email@example.com", "Recipient Name"));
// Send the email and retrieve the response
var response = await client.SendEmailAsync(message);
}
using SendGrid;
using SendGrid.Helpers.Mail;
using System.Threading.Tasks;
// Asynchronous method to send an email using SendGrid
static async Task SendEmailAsync()
{
// Initialize a SendGrid client with your API key
var client = new SendGridClient("your_api_key");
// Create a new email message
var message = new SendGridMessage()
{
From = new EmailAddress("your_email@example.com", "Your Name"),
Subject = "Hello World from SendGrid",
PlainTextContent = "This is a test email.",
HtmlContent = "<strong>This is a test email.</strong>"
};
// Add a recipient to your email message
message.AddTo(new EmailAddress("recipient_email@example.com", "Recipient Name"));
// Send the email and retrieve the response
var response = await client.SendEmailAsync(message);
}
Imports SendGrid
Imports SendGrid.Helpers.Mail
Imports System.Threading.Tasks
' Asynchronous method to send an email using SendGrid
Shared Async Function SendEmailAsync() As Task
' Initialize a SendGrid client with your API key
Dim client = New SendGridClient("your_api_key")
' Create a new email message
Dim message = New SendGridMessage() With {
.From = New EmailAddress("your_email@example.com", "Your Name"),
.Subject = "Hello World from SendGrid",
.PlainTextContent = "This is a test email.",
.HtmlContent = "<strong>This is a test email.</strong>"
}
' Add a recipient to your email message
message.AddTo(New EmailAddress("recipient_email@example.com", "Recipient Name"))
' Send the email and retrieve the response
Dim response = Await client.SendEmailAsync(message)
End Function
Este código envia um e-mail simples. Este vídeo mostra os conceitos básicos de como usar o SendGrid .NET. A partir daqui, você pode expandir para usar mais recursos.
Implementar funcionalidades do SendGrid .NET
Envio de e-mails com conteúdo HTML personalizado
Para enviar um e-mail com conteúdo HTML, primeiro você cria o seu HTML. Em seguida, use SendGridMessage para definir HtmlContent . Isso permite que você crie e-mails mais sofisticados. Eis como:
using SendGrid;
using SendGrid.Helpers.Mail;
using System.Threading.Tasks;
// Asynchronous method to send an email with custom HTML content
static async Task SendCustomHtmlEmailAsync()
{
// Initialize a SendGrid client with your API key
var client = new SendGridClient("your_api_key");
// Create a new email message with rich HTML content
var message = new SendGridMessage()
{
From = new EmailAddress("your_email@example.com", "Your Name"),
Subject = "Custom HTML Content",
HtmlContent = "<html><body><h1>This is a Heading</h1><p>This is a paragraph.</p></body></html>"
};
// Add a recipient to your email message
message.AddTo(new EmailAddress("recipient_email@example.com", "Recipient Name"));
// Send the email and retrieve the response
var response = await client.SendEmailAsync(message);
}
using SendGrid;
using SendGrid.Helpers.Mail;
using System.Threading.Tasks;
// Asynchronous method to send an email with custom HTML content
static async Task SendCustomHtmlEmailAsync()
{
// Initialize a SendGrid client with your API key
var client = new SendGridClient("your_api_key");
// Create a new email message with rich HTML content
var message = new SendGridMessage()
{
From = new EmailAddress("your_email@example.com", "Your Name"),
Subject = "Custom HTML Content",
HtmlContent = "<html><body><h1>This is a Heading</h1><p>This is a paragraph.</p></body></html>"
};
// Add a recipient to your email message
message.AddTo(new EmailAddress("recipient_email@example.com", "Recipient Name"));
// Send the email and retrieve the response
var response = await client.SendEmailAsync(message);
}
Imports SendGrid
Imports SendGrid.Helpers.Mail
Imports System.Threading.Tasks
' Asynchronous method to send an email with custom HTML content
Shared Async Function SendCustomHtmlEmailAsync() As Task
' Initialize a SendGrid client with your API key
Dim client = New SendGridClient("your_api_key")
' Create a new email message with rich HTML content
Dim message = New SendGridMessage() With {
.From = New EmailAddress("your_email@example.com", "Your Name"),
.Subject = "Custom HTML Content",
.HtmlContent = "<html><body><h1>This is a Heading</h1><p>This is a paragraph.</p></body></html>"
}
' Add a recipient to your email message
message.AddTo(New EmailAddress("recipient_email@example.com", "Recipient Name"))
' Send the email and retrieve the response
Dim response = Await client.SendEmailAsync(message)
End Function
Utilizando o serviço SMTP SendGrid
Em alguns casos, você pode preferir usar o SMTP para enviar e-mails. O SendGrid também oferece suporte a isso. Configure suas definições de SMTP no SendGrid. Em seguida, utilize essas configurações em seu aplicativo. Este método requer a configuração de um cliente SMTP com os detalhes do servidor SendGrid. Aqui está uma configuração básica:
using System.Net;
using System.Net.Mail;
// Method to send an email using SendGrid's SMTP service
void SendSmtpEmail()
{
// Configure SMTP client with SendGrid's server details
using (var client = new SmtpClient("smtp.sendgrid.net")
{
Port = 587,
Credentials = new NetworkCredential("apikey", "your_sendgrid_apikey"),
EnableSsl = true,
})
{
// Create a new mail message
var mailMessage = new MailMessage
{
From = new MailAddress("your_email@example.com"),
Subject = "Test SMTP Email",
Body = "This is a test email sent via SMTP.",
IsBodyHtml = true,
};
// Add a recipient to the mail message
mailMessage.To.Add("recipient_email@example.com");
// Send the email
client.Send(mailMessage);
}
}
using System.Net;
using System.Net.Mail;
// Method to send an email using SendGrid's SMTP service
void SendSmtpEmail()
{
// Configure SMTP client with SendGrid's server details
using (var client = new SmtpClient("smtp.sendgrid.net")
{
Port = 587,
Credentials = new NetworkCredential("apikey", "your_sendgrid_apikey"),
EnableSsl = true,
})
{
// Create a new mail message
var mailMessage = new MailMessage
{
From = new MailAddress("your_email@example.com"),
Subject = "Test SMTP Email",
Body = "This is a test email sent via SMTP.",
IsBodyHtml = true,
};
// Add a recipient to the mail message
mailMessage.To.Add("recipient_email@example.com");
// Send the email
client.Send(mailMessage);
}
}
Imports System.Net
Imports System.Net.Mail
' Method to send an email using SendGrid's SMTP service
Private Sub SendSmtpEmail()
' Configure SMTP client with SendGrid's server details
Using client = New SmtpClient("smtp.sendgrid.net") With {
.Port = 587,
.Credentials = New NetworkCredential("apikey", "your_sendgrid_apikey"),
.EnableSsl = True
}
' Create a new mail message
Dim mailMessage As New MailMessage With {
.From = New MailAddress("your_email@example.com"),
.Subject = "Test SMTP Email",
.Body = "This is a test email sent via SMTP.",
.IsBodyHtml = True
}
' Add a recipient to the mail message
mailMessage.To.Add("recipient_email@example.com")
' Send the email
client.Send(mailMessage)
End Using
End Sub
Gerenciamento de campanhas de e-mail
O SendGrid .NET permite gerenciar campanhas de e-mail. Crie, envie e acompanhe campanhas através da API. Para obter informações detalhadas sobre o gerenciamento de campanhas, consulte a documentação da API do SendGrid. Essa funcionalidade vai além do envio básico de e-mails, sendo valiosa para estratégias de marketing.
Como lidar com e-mails devolvidos e denúncias de spam
Lidar com devoluções e denúncias de spam é crucial. O SendGrid .NET fornece webhooks para esses eventos. Configure webhooks no seu painel de controle do SendGrid. Em seguida, processe esses eventos em sua aplicação. Isso mantém sua lista de e-mails limpa e melhora a entregabilidade.
Autenticação de Domínios
A autenticação de domínio é importante para a entregabilidade de e-mails. Ele verifica a propriedade do seu domínio. No SendGrid, configure a autenticação de domínio através do painel de controle. Isso envolve a adição de registros DNS. Após a verificação, os e-mails passam a parecer mais confiáveis para os destinatários e provedores de e-mail.
Integre o IronPDF com o SendGrid
Introdução ao IronPDF

Explore os recursos do IronPDF , uma biblioteca que permite aos desenvolvedores criar, editar e extrair conteúdo de PDFs em aplicativos .NET . Oferece uma abordagem direta para lidar com arquivos PDF programaticamente. Isso facilita o trabalho com arquivos PDF sem a necessidade de um conhecimento profundo das especificações do PDF. Com o IronPDF, os desenvolvedores podem converter HTML em PDF usando âncoras do IronPDF , editar PDFs existentes e extrair conteúdo.
Use Case of Merging IronPDF with SendGrid C
Em uma aplicação empresarial, relatórios financeiros, faturas ou documentos personalizados precisam ser gerados dinamicamente e enviados a clientes ou partes interessadas por e-mail. O IronPDF pode ser usado para criar esses documentos a partir de modelos ou fontes de dados, convertendo-os para o formato PDF. Posteriormente, utilizando o cliente C# do SendGrid, esses documentos PDF podem ser anexados a e-mails e enviados automaticamente aos destinatários pretendidos.
O IronPDF se destaca na conversão de HTML para PDF , garantindo a preservação precisa dos layouts e estilos originais. É perfeito para criar PDFs a partir de conteúdo da web, como relatórios, faturas e documentação. Com suporte para arquivos HTML, URLs e strings HTML brutas, o IronPDF produz facilmente documentos PDF de alta qualidade.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
Instale a biblioteca IronPDF.
Para usar o IronPDF, primeiro você precisa instalar o pacote NuGet . Primeiro, abra o console do Gerenciador de Pacotes NuGet e execute este comando:
Install-Package IronPdf
Exemplo de código de caso de uso com detalhes e etapas.
Passo 1: Gere o PDF com o IronPDF
Primeiro, geramos um documento PDF. Vamos criar um PDF simples a partir de uma string HTML como exemplo.
using IronPdf;
// Instantiates a new HtmlToPdf object
var Renderer = new HtmlToPdf();
// Constructs a PDF from an HTML string
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Define the output path for the PDF file
var outputPath = "example.pdf";
// Saves the generated PDF to the specified path
PDF.SaveAs(outputPath);
using IronPdf;
// Instantiates a new HtmlToPdf object
var Renderer = new HtmlToPdf();
// Constructs a PDF from an HTML string
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Define the output path for the PDF file
var outputPath = "example.pdf";
// Saves the generated PDF to the specified path
PDF.SaveAs(outputPath);
Imports IronPdf
' Instantiates a new HtmlToPdf object
Private Renderer = New HtmlToPdf()
' Constructs a PDF from an HTML string
Private PDF = Renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Define the output path for the PDF file
Private outputPath = "example.pdf"
' Saves the generated PDF to the specified path
PDF.SaveAs(outputPath)
Etapa 2: Configurar o SendGrid
Certifique-se de ter o pacote NuGet SendGrid instalado:
Install-Package SendGrid
Em seguida, configure o SendGrid em sua aplicação. Você precisará de uma chave de API da sua conta SendGrid.
using SendGrid;
using SendGrid.Helpers.Mail;
// Initialize SendGrid client with your API key
var apiKey = "your_sendgrid_api_key";
var client = new SendGridClient(apiKey);
using SendGrid;
using SendGrid.Helpers.Mail;
// Initialize SendGrid client with your API key
var apiKey = "your_sendgrid_api_key";
var client = new SendGridClient(apiKey);
Imports SendGrid
Imports SendGrid.Helpers.Mail
' Initialize SendGrid client with your API key
Private apiKey = "your_sendgrid_api_key"
Private client = New SendGridClient(apiKey)
Passo 3: Criar e enviar e-mail com anexo em PDF
Agora, crie uma mensagem de e-mail e anexe o PDF gerado anteriormente. Por fim, envie o e-mail através do SendGrid.
using System;
using System.IO;
using System.Threading.Tasks;
using SendGrid;
using SendGrid.Helpers.Mail;
// Asynchronous method to create and send an email with a PDF attachment
async Task SendEmailWithPdfAttachmentAsync()
{
// Define sender and recipient email addresses
var from = new EmailAddress("your_email@example.com", "Your Name");
var subject = "Sending with SendGrid is Fun";
var to = new EmailAddress("recipient_email@example.com", "Recipient Name");
var plainTextContent = "Hello, Email!";
var htmlContent = "<strong>Hello, Email!</strong>";
// Create a new email message
var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
// Attach the PDF
var bytes = File.ReadAllBytes("example.pdf");
var file = Convert.ToBase64String(bytes);
msg.AddAttachment("example.pdf", file);
// Send the email and retrieve the response
var response = await client.SendEmailAsync(msg);
}
using System;
using System.IO;
using System.Threading.Tasks;
using SendGrid;
using SendGrid.Helpers.Mail;
// Asynchronous method to create and send an email with a PDF attachment
async Task SendEmailWithPdfAttachmentAsync()
{
// Define sender and recipient email addresses
var from = new EmailAddress("your_email@example.com", "Your Name");
var subject = "Sending with SendGrid is Fun";
var to = new EmailAddress("recipient_email@example.com", "Recipient Name");
var plainTextContent = "Hello, Email!";
var htmlContent = "<strong>Hello, Email!</strong>";
// Create a new email message
var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
// Attach the PDF
var bytes = File.ReadAllBytes("example.pdf");
var file = Convert.ToBase64String(bytes);
msg.AddAttachment("example.pdf", file);
// Send the email and retrieve the response
var response = await client.SendEmailAsync(msg);
}
Imports System
Imports System.IO
Imports System.Threading.Tasks
Imports SendGrid
Imports SendGrid.Helpers.Mail
' Asynchronous method to create and send an email with a PDF attachment
Async Function SendEmailWithPdfAttachmentAsync() As Task
' Define sender and recipient email addresses
Dim from = New EmailAddress("your_email@example.com", "Your Name")
Dim subject = "Sending with SendGrid is Fun"
Dim [to] = New EmailAddress("recipient_email@example.com", "Recipient Name")
Dim plainTextContent = "Hello, Email!"
Dim htmlContent = "<strong>Hello, Email!</strong>"
' Create a new email message
Dim msg = MailHelper.CreateSingleEmail(from, [to], subject, plainTextContent, htmlContent)
' Attach the PDF
Dim bytes = File.ReadAllBytes("example.pdf")
Dim file = Convert.ToBase64String(bytes)
msg.AddAttachment("example.pdf", file)
' Send the email and retrieve the response
Dim response = Await client.SendEmailAsync(msg)
End Function
Este exemplo de código ilustra como gerar um documento PDF simples, anexá-lo a um e-mail e enviá-lo através do SendGrid. É um processo simples que integra as funcionalidades de geração de documentos e envio de e-mails do IronPDF e do SendGrid, respectivamente, em uma aplicação .NET .
Conclusão

Em resumo, este guia oferece uma visão geral abrangente da integração do SendGrid .NET para serviços de e-mail e do IronPDF para gerenciamento de documentos PDF em aplicativos .NET . Seguindo os passos descritos, os desenvolvedores podem implementar com eficiência funcionalidades de envio de e-mail com conteúdo HTML personalizável e opções de serviço SMTP, além de gerenciar campanhas de e-mail.
Além disso, a integração do IronPDF permite a geração e o envio dinâmicos de documentos PDF por e-mail, como relatórios financeiros ou faturas, demonstrando um caso de uso prático da fusão dessas poderosas bibliotecas. Os desenvolvedores interessados em explorar essas funcionalidades podem aproveitar a versão de avaliação gratuita do IronPDF antes de adquirir uma licença. Detalhes da licença e opções de preços do IronPDF a partir de $799.
Perguntas frequentes
Como posso configurar o SendGrid .NET no meu projeto?
Configure o SendGrid .NET instalando o pacote SendGrid através do Gerenciador de Pacotes NuGet no Visual Studio. Após a instalação, crie uma conta SendGrid e gere uma chave de API para começar a enviar e-mails.
Quais são os passos envolvidos no envio de um e-mail usando o SendGrid .NET?
Utilize o SendGridClient com sua chave de API, construa um SendGridMessage com os detalhes necessários do remetente e do destinatário e envie a mensagem usando o método SendEmailAsync do SendGridClient.
Como faço para enviar e-mails com conteúdo HTML usando o SendGrid .NET?
Para enviar e-mails com conteúdo HTML, defina a propriedade HtmlContent do SendGridMessage com seu conteúdo HTML personalizado antes de enviar o e-mail.
É possível usar SMTP com SendGrid em aplicações .NET?
Sim, você pode usar SMTP com o SendGrid configurando seu cliente SMTP com os detalhes do servidor SMTP do SendGrid e usando sua chave de API como credenciais.
Como posso gerar um documento PDF em .NET para anexar a um e-mail?
Você pode gerar um documento PDF usando ChromePdfRenderer do IronPDF para converter conteúdo HTML em um arquivo PDF, que pode então ser salvo usando o método SaveAs .
Qual é o procedimento para anexar um PDF a um e-mail usando o SendGrid?
Converta o PDF em uma matriz de bytes, codifique-a em uma string base64 e use o método AddAttachment da classe SendGridMessage para anexar o PDF ao seu e-mail.
Por que a autenticação de domínio é importante ao usar o SendGrid?
A autenticação de domínio é crucial, pois verifica a propriedade do seu domínio, melhorando a entregabilidade dos e-mails e garantindo que eles sejam vistos como confiáveis pelos destinatários.
Como o IronPDF aprimora a funcionalidade do SendGrid em aplicações .NET?
O IronPDF permite que desenvolvedores criem e manipulem documentos PDF, que podem ser integrados ao SendGrid para enviar os PDFs gerados como anexos de e-mail, aprimorando os recursos de gerenciamento de documentos.
Quais são os benefícios de usar o SendGrid para gerenciar campanhas de e-mail?
O SendGrid oferece recursos robustos para criar, enviar e rastrear campanhas de e-mail por meio de sua API, disponibilizando opções de gerenciamento detalhadas, conforme descrito na documentação da API do SendGrid.
Como posso lidar com bounces e denúncias de spam no SendGrid?
Utilize os webhooks do SendGrid para lidar com e-mails devolvidos e denúncias de spam. Esses webhooks podem notificar seu aplicativo sobre problemas na entrega de e-mails, permitindo que você os gerencie com eficiência.




