Sendgrid .NET (jak to działa dla programistów)
SendGrid, part of Twilio SendGrid, offers a cloud-based service to help customers send emails simply, streamlining communication processes. When you create a SendGrid account, you gain access to features like SMTP relay and API keys, making sending email messages efficient. The SMTP relay is the core of this process as it allows your emails to be sent from your server through SendGrid's system. The authenticated domain feature verifies your domain. As SendGrid is open source, you can access its GitHub repo and help to modify it.
In this guide, we aim to unpack the features and functionalities of SendGrid .NET, guiding you through the initial setup, basic operations, and more advanced features. Whether you're looking to send your first email through code or optimize your email campaigns, this article is your starting point to mastering SendGrid .NET and its integration with IronPDF for PDF manipulation.
Getting Started with SendGrid .NET
First, you need to set up SendGrid .NET in your project. Start by installing the SendGrid .NET package. Use NuGet Package Manager for this. Open Visual Studio, then open the Package Manager Console. Wpisz następujące polecenie:
Install-Package SendGrid

This command adds SendGrid to your project. After installation, set up your SendGrid account. You need an API key. Go to the SendGrid website. Create an account if you don't have one. Once logged in, navigate to Settings. Find API Keys. Click Create API Key. Give it a name and select the access level. Copy the API key. You will use this in your application.
Basic Code Example
Now, let's send an email. Create a new instance of the SendGridClient. Pass your API key to the constructor. Then, create a SendGridMessage. Set the sender and recipient email addresses. Add a subject and the email content. Finally, use SendGridClient to send the message. Here is a basic example:
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
This code sends a simple email. It shows the basics of using SendGrid .NET. You can expand from here to use more features.
Implement Features of SendGrid .NET
Sending Emails with Custom HTML Content
To send an email with HTML content, you first create your HTML. Then, use SendGridMessage to set HtmlContent. This lets you design rich emails. Oto jak to zrobić:
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
Using SendGrid SMTP Service
Sometimes, you might prefer SMTP to send emails. SendGrid supports this too. Configure your SMTP settings in SendGrid. Then, use these settings in your application. This method requires setting up an SMTP client with SendGrid's server details. Oto podstawowa konfiguracja:
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
Managing Email Campaigns
SendGrid .NET allows managing email campaigns. Create, send, and track campaigns through the API. For detailed campaign management, refer to SendGrid's API documentation. This feature is beyond basic email sending but is valuable for marketing efforts.
Handling Bounced Emails and Spam Reports
Handling bounces and spam reports is crucial. SendGrid .NET provides webhooks for these events. Set up webhooks in your SendGrid dashboard. Then, process these events in your application. This keeps your email list clean and improves deliverability.
Authenticating Domains
Domain authentication is important for email deliverability. It verifies your domain's ownership. In SendGrid, set up domain authentication via the dashboard. This involves adding DNS records. Once verified, emails appear more trustworthy to recipients and email providers.
Integrate IronPDF with SendGrid
Introduction of IronPDF

Explore IronPDF capabilities is a library that allows developers to create, edit, and extract PDF content within .NET applications. It provides a straightforward approach to dealing with PDF files programmatically. It makes it easier to work with PDF files without needing deep knowledge of PDF specifications. With IronPDF, developers can convert HTML to PDF using IronPDF anchors, edit existing PDFs, and extract content.
Use Case of Merging IronPDF with SendGrid C
In a business application, financial reports, invoices, or personalized documents need to be generated dynamically and sent to clients or stakeholders via email. IronPDF can be used to create these documents from templates or data sources, converting them into PDF format. Subsequently, using SendGrid's C# client, these PDF documents can be attached to emails and dispatched automatically to the intended recipients.
IronPDF wyróżnia się w konwersji HTML do PDF, zapewniając precyzyjne zachowanie oryginalnych układów i stylów. Idealnie nadaje się do tworzenia plików PDF z treści internetowych, takich jak raporty, faktury i dokumentacja. Dzięki obsłudze plików HTML, adresów URL i surowych ciągów znaków HTML, IronPDF z łatwością tworzy wysokiej jakości dokumenty 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");
}
}
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
Zainstaluj bibliotekę IronPDF
Aby korzystać z IronPDF, należy najpierw zainstalować pakiet NuGet. Najpierw otwórz konsolę NuGet Package Manager, a następnie uruchom następujące polecenie:
Install-Package IronPdf
Przykładowy kod z opisem szczegółów i kroków
Krok 1: Wygeneruj plik PDF za pomocą IronPDF
Najpierw generujemy dokument PDF. Jako przykład stworzymy prosty plik PDF na podstawie ciągu znaków HTML.
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)
Krok 2: Skonfiguruj SendGrid
Upewnij się, że masz zainstalowany pakiet SendGrid NuGet:
Install-Package SendGrid
Następnie skonfiguruj SendGrid w swojej aplikacji. Będziesz potrzebować klucza API ze swojego konta 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)
Krok 3: Utwórz i wyślij wiadomość e-mail z załącznikiem PDF
Teraz utwórz wiadomość e-mail i załącz wcześniej wygenerowany plik PDF. Na koniec wyślij wiadomość e-mail za pośrednictwem 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
Ten przykład kodu ilustruje generowanie prostego dokumentu PDF, dołączanie go do wiadomości e-mail i wysyłanie za pośrednictwem SendGrid. Jest to prosty proces, który integruje funkcje generowania dokumentów i wysyłania wiadomości e-mail odpowiednio z IronPDF i SendGrid w aplikacji .NET.
Wnioski

Podsumowując, niniejszy przewodnik zawiera kompleksowy przegląd integracji SendGrid .NET do obsługi poczty elektronicznej oraz IronPDF for .NET do zarządzania dokumentami PDF w aplikacjach .NET. Postępując zgodnie z opisanymi krokami, programiści mogą efektywnie wdrażać funkcje wysyłania wiadomości e-mail z dostosowywaną treścią HTML i opcjami usługi SMTP oraz zarządzać kampaniami e-mailowymi.
Ponadto integracja z IronPDF umożliwia dynamiczne generowanie i wysyłanie dokumentów PDF, takich jak raporty finansowe lub faktury, co stanowi praktyczny przykład zastosowania tych potężnych bibliotek. Programiści zainteresowani zapoznaniem się z tymi funkcjami mogą skorzystać z bezpłatnej wersji próbnej IronPDF przed zakupem licencji. IronPDF license details and pricing options start from $799.
Często Zadawane Pytania
Jak skonfigurować SendGrid .NET w moim projekcie?
Skonfiguruj SendGrid .NET, instalując pakiet SendGrid za pomocą menedżera pakietów NuGet w Visual Studio. Po instalacji utwórz konto SendGrid i wygeneruj klucz API, aby rozpocząć wysyłanie wiadomości e-mail.
Jakie kroki trzeba wykonać, żeby wysłać e-mail za pomocą SendGrid .NET?
Użyj SendGridClient z kluczem API, utwórz SendGridMessage z niezbędnymi danymi nadawcy i odbiorcy, a następnie wyślij wiadomość za pomocą metody SendEmailAsync klasy SendGridClient.
Jak wysyłać wiadomości e-mail z bogatą zawartością HTML za pomocą SendGrid .NET?
Aby wysłać wiadomości e-mail z bogatą zawartością HTML, przed wysłaniem wiadomości ustaw właściwość HtmlContent obiektu SendGridMessage na własną zawartość HTML.
Czy w aplikacjach .NET można korzystać z protokołu SMTP w połączeniu z SendGrid?
Tak, możesz korzystać z SMTP w SendGrid, konfigurując swojego klienta SMTP z danymi serwera SMTP SendGrid i używając swojego klucza API jako danych uwierzytelniających.
Jak wygenerować dokument PDF w .NET jako załącznik do wiadomości e-mail?
Można wygenerować dokument PDF za pomocą ChromePdfRenderer firmy IronPDF w celu konwersji treści HTML do pliku PDF, który następnie można zapisać za pomocą metody SaveAs.
Jak wygląda proces dołączania pliku PDF do wiadomości e-mail za pomocą SendGrid?
Przekonwertuj plik PDF na tablicę bajtów, zakoduj go do ciągu znaków base64 i użyj metody AddAttachment klasy SendGridMessage, aby załączyć plik PDF do wiadomości e-mail.
Dlaczego uwierzytelnianie domeny jest ważne podczas korzystania z SendGrid?
Uwierzytelnianie domeny ma kluczowe znaczenie, ponieważ weryfikuje ona własność domeny, poprawiając dostarczalność wiadomości e-mail i zapewniając, że odbiorcy postrzegają je jako wiarygodne.
W jaki sposób IronPDF rozszerza funkcjonalność SendGrid w aplikacjach .NET?
IronPDF pozwala programistom tworzyć i edytować dokumenty PDF, które można zintegrować z SendGrid w celu wysyłania wygenerowanych plików PDF jako załączników do wiadomości e-mail, co zwiększa możliwości zarządzania dokumentami.
Jakie są zalety korzystania z SendGrid do zarządzania kampaniami e-mailowymi?
SendGrid zapewnia rozbudowane funkcje do tworzenia, wysyłania i śledzenia kampanii e-mailowych za pośrednictwem swojego API, oferując szczegółowe opcje zarządzania opisane w dokumentacji API SendGrid.
Jak radzić sobie z odrzuceniami i zgłoszeniami o spamie w SendGrid?
Skorzystaj z webhooków SendGrid do obsługi zwrotów i zgłoszeń dotyczących spamu. Webhooki te mogą powiadamiać Twoją aplikację o problemach z dostarczaniem wiadomości e-mail, umożliwiając Ci skuteczne zarządzanie nimi.




