How To Add Attachment In Sendgrid C#

During the digital age, emails have become a necessity for all companies. Whether it’s a small business or a big company, emails are a trustworthy and effective means of sharing information. One of the top email service providers is SendGrid. Recognized for its advanced API capabilities, SendGrid offers a strong platform for sending, receiving, and monitoring emails. In this blog post, we will explore the details of incorporating an attachment to your email using SendGrid in C#.


Before we start, ensure that you have the following:

  1. SendGrid account: You should have a valid SendGrid account and API key. If you do not have one, create a SendGrid account here and get the API key.
  2. .NET Core SDK: The .NET Core SDK should be installed in your development environment. You can download it from here.
  3. SendGrid NuGet package: Install the SendGrid NuGet package in your project using the package manager console with the command Install-Package Sendgrid -Version x.y.z.

Adding an Attachment to your Email

To add an attachment to your email, you will need to convert your file into a Base64 string and then add it as an attachment to your email message.

Let’s see how we can achieve this with an example:

public async Task SendEmailWithAttachmentAsync()
    var apiKey = "Your_SendGrid_API_Key";
    var client = new SendGridClient(apiKey);
    var from = new EmailAddress("[email protected]", "Example User");
    var subject = "Sending with SendGrid is Fun";
    var to = new EmailAddress("[email protected]", "Example User");
    var plainTextContent = "and easy to do anywhere, even with C#";
    var htmlContent = "<strong>and easy to do anywhere, even with C#</strong>";
    var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);

    // Read the file into a byte array
    var bytes = File.ReadAllBytes("Path to the file you want to attach");

    // Convert the byte array into a Base64 string
    var fileContent = Convert.ToBase64String(bytes);

    // Add the attachment to the email
    msg.AddAttachment("filename.extension", fileContent);

    // Send the email
    var response = await client.SendEmailAsync(msg);

In the above code, replace “Your_SendGrid_API_Key” with your SendGrid API key, and replace “Path to the file you want to attach” and “filename.extension” with the path of your file and the name of the file respectively.


And there you have it – a simple way to add an attachment to your emails using SendGrid in C#. This method is quite straightforward and offers a great deal of flexibility for developers. So, the next time you want to send an email with an attachment, use this guide to help you along the way!