跳至页脚内容
.NET 帮助

Sendgrid .NET(开发人员如何使用)

SendGrid,作为Twilio SendGrid的一部分,提供基于云的服务,以帮助客户轻松发送电子邮件,从而简化通信流程。 创建一个SendGrid帐户后,您可以使用SMTP中继和API密钥等功能,使发送电子邮件更加高效。 SMTP中继是这一过程的核心,因为它允许您的电子邮件通过SendGrid的系统从您的服务器发送。 验证过的域名功能可以验证您的域名。 由于SendGrid是开源的,您可以访问其GitHub仓库并帮助修改。

在此指南中,我们旨在解读SendGrid .NET的功能和特点,引导您完成初始设置、基本操作和更多高级功能。 无论您是想通过代码发送您的第一封电子邮件,还是优化您的电子邮件计划,本文都是您掌握SendGrid .NET及其与IronPDF用于PDF操作集成的起点。

开始使用SendGrid .NET

首先,您需要在项目中设置SendGrid .NET。 从安装SendGrid .NET包开始。 使用NuGet包管理器来实现这一点。 打开Visual Studio,然后打开包管理器控制台。 输入以下命令:

Install-Package SendGrid

SendGrid .NET(如何为开发者工作):图1 - 通过Visual Studio中的NuGet包管理器控制台安装SendGrid.NET

此命令将SendGrid添加到您的项目中。 安装后,设置您的SendGrid帐户。 您需要一个API密钥。 访问SendGrid网站。 如果您没有帐户,创建一个。 一旦登录,导航到设置。 找到API密钥。 单击创建API密钥。 为它命名并选择访问级别。 复制API密钥。 您将在应用程序中使用它。

基本代码示例

现在,让我们发送一封电子邮件。 创建一个新的SendGridClient实例。 将您的API密钥传递给构造函数。 然后,创建一个SendGridMessage。 设置发件人和收件人的电子邮件地址。 添加主题和电子邮件内容。 最后,使用SendGridClient发送消息。 以下是一个基本示例:

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
$vbLabelText   $csharpLabel

此代码发送一封简单的电子邮件。 它展示了使用SendGrid .NET的基本知识。 您可以从此处扩展以使用更多功能。

实现SendGrid .NET的功能

发送带有自定义HTML内容的电子邮件

要发送带有HTML内容的电子邮件,您首先需要创建您的HTML。 然后,使用SendGridMessage设置HtmlContent。 这让您可以设计丰富的电子邮件。 具体方法如下

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
$vbLabelText   $csharpLabel

使用SendGrid SMTP服务

有时您可能更喜欢使用SMTP来发送电子邮件。 SendGrid也支持这一点。 在SendGrid中配置您的SMTP设置。 然后,在您的应用程序中使用这些设置。 这种方法需要设置一个SMTP客户端,并使用SendGrid的服务器详细信息。 这是一个基本设置:

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
$vbLabelText   $csharpLabel

管理电子邮件营销活动

SendGrid .NET允许管理电子邮件营销活动。 通过API创建、发送和跟踪活动。 有关详细的活动管理,请参阅SendGrid的API文档。 该功能超越了基础的电子邮件发送,但对于营销活动非常有价值。

处理退信和垃圾邮件报告

处理退信和垃圾邮件报告至关重要。 SendGrid .NET为这些事件提供了webhook。 在您的SendGrid仪表板中设置webhook。 然后,在您的应用程序中处理这些事件。 这使得您的邮件列表保持清洁并提高可递送性。

验证域名

验证域名对于电子邮件的可递送性非常重要。 它验证您的域名的所有权。在SendGrid中,通过仪表板设置域名验证。 这涉及到添加DNS记录。 一旦验证通过,邮件对收件人和电子邮件提供商而言看起来更值得信赖。

将IronPDF与SendGrid集成

IronPDF介绍

SendGrid .NET(对开发者如何工作):图2 - IronPDF主页

探索IronPDF功能是一个库,允许开发人员在.NET应用程序中创建、编辑和提取PDF内容。 它提供了一种简单的方法来以编程方式处理PDF文件。 这样做更容易处理PDF文件,而无需深入了解PDF规范。 通过IronPDF,开发人员可以使用HTML转换成PDF, 编辑现有PDF并提取内容。

IronPDF与SendGrid C#整合的使用案例

在一个业务应用中,需要动态生成财务报告、发票或个性化文件,并通过电子邮件发送给客户或利益相关者。 IronPDF可以用于从模板或数据源创建这些文件,并将它们转换为PDF格式。 随后,使用SendGrid的C#客户端,这些PDF文档可以被附加到电子邮件中,并自动发送给目标收件人。

IronPDF在HTML到PDF转换方面表现出色,确保精确保留原始布局和样式。 它非常适合从基于Web的内容中创建PDF,如报告、发票和文档。 利用对HTML文件、URL和原始HTML字符串的支持,IronPDF轻松生成高质量的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
$vbLabelText   $csharpLabel

安装IronPDF库

使用IronPDF,您首先需要安装NuGet包。 首先,打开NuGet包管理器控制台,然后运行此命令:

Install-Package IronPdf

详细步骤的使用案例代码示例

步骤1:使用IronPDF生成PDF

首先,我们生成PDF文档。 我们将创建一个简单的HTML字符串PDF作为示例。

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)
$vbLabelText   $csharpLabel

步骤2:设置SendGrid

确保您已安装SendGrid NuGet包:

Install-Package SendGrid

然后,在您的应用程序中配置SendGrid。 您需要从SendGrid帐户获取API密钥。

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)
$vbLabelText   $csharpLabel

步骤3:创建并发送带有PDF附件的电子邮件

现在,创建一封电子邮件并附加之前生成的PDF。 最后,通过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
$vbLabelText   $csharpLabel

此代码示例展示了如何生成简单的PDF文档,将其作为附件附加到电子邮件中,并通过SendGrid发送邮件。 这是一个直接的过程,将IronPDF和SendGrid的文档生成和电子邮件功能分别集成在.NET应用程序中。

结论

SendGrid .NET(对开发者如何工作):图3 - IronPDF许可页面

总之,本指南全面展示了在.NET应用程序中集成用于电子邮件服务的SendGrid .NET和用于PDF文档管理的IronPDF。 通过遵循所述步骤,开发人员可以有效地实现具有可自定义HTML内容的电子邮件发送功能和SMTP服务选项,以及管理电子邮件营销活动。

此外,IronPDF的集成支持动态生成和发送PDF文档,比如财务报告或发票,展示了这些强大库的实际使用案例。 对探索这些功能感兴趣的开发人员可以在购买许可证之前利用IronPDF免费试用IronPDF许可证详细信息和价格选项起价为$799。

常见问题解答

如何在我的项目中设置 SendGrid .NET?

通过 Visual Studio 中的 NuGet 包管理器安装 SendGrid 包来设置 SendGrid .NET。安装后,创建一个 SendGrid 账户并生成 API 密钥,以开始发送电子邮件。

使用 SendGrid .NET 发送电子邮件的步骤是什么?

使用 SendGridClient 和您的 API 密钥,构造一个包含必要发件人和收件人详细信息的 SendGridMessage,并使用 SendGridClient 的 SendEmailAsync 方法发送消息。

如何使用 SendGrid .NET 发送包含丰富 HTML 的电子邮件?

要发送 HTML 丰富的电子邮件,在发送电子邮件之前,将 SendGridMessage 的 HtmlContent 属性设置为自定义 HTML 内容。

在 .NET 应用程序中使用 SendGrid 是否可以使用 SMTP?

是的,可以通过使用 SendGrid 的 SMTP 服务器详细信息配置 SMTP 客户端,并使用您的 API 密钥作为凭证。

我如何在 .NET 中生成 PDF 文档以作为电子邮件附件?

可以使用 IronPDF 的 ChromePdfRenderer 将 HTML 内容转换为 PDF 文件,然后使用 SaveAs 方法保存。

使用 SendGrid 将 PDF 附件附加到电子邮件的过程是什么?

将 PDF 转换为字节数组,编码为 base64 字符串,并使用 SendGridMessage 的 AddAttachment 方法将 PDF 附件附加到电子邮件。

为什么在使用 SendGrid 时,域认证很重要?

域认证至关重要,因为它验证了您域的所有权,提高了电子邮件的可送达性,确保您的电子邮件被收件人信任。

IronPDF 如何在 .NET 应用程序中增强 SendGrid 的功能?

IronPDF 允许开发人员创建和操作 PDF 文档,这可以与 SendGrid 集成以发送生成的 PDF 作为电子邮件附件,增强文档管理功能。

使用 SendGrid 管理电子邮件营销活动的好处是什么?

SendGrid 提供强大的功能,通过其 API 创建、发送和跟踪电子邮件活动,提供详细的管理选项,如 SendGrid 的 API 文档中所述。

如何处理 SendGrid 中的退信和垃圾邮件报告?

使用 SendGrid 的 webhooks 处理退信和垃圾邮件报告。通过这些 webhooks,您的应用程序可以接收到关于电子邮件发送问题的通知,让您可以有效地管理它们。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。