How To Add Attachment In Sendgrid

SendGrid is an email service that operates in the cloud and offers dependable delivery of transactional emails, the ability to handle large volumes of emails, and live metrics. Additionally, their customizable APIs make integration effortless. This article will concentrate on one specific aspect of SendGrid – the capability to include attachments.

Uploading an attachment

Adding an attachment to SendGrid is a simple process that involves base64 encoding your attachment and then adding it to your email. Here is how you do it:

Step 1: Base64 Encode Your Attachment

The first step of the process is to base64 encode your attachment. This can be done using different programming languages. For this tutorial, we’ll be using Python:

    import base64
    attachment = open("path_to_your_file", "rb")
    attachment_content =
    encoded_content = base64.b64encode(attachment_content).decode()

Step 2: Add the Encoded Attachment to Your Email

The next step is to add the base64 encoded attachment to your SendGrid email. You can do this in the following way:

    from sendgrid.helpers.mail import Mail, Attachment, FileContent, FileName, FileType, Disposition, ContentId

    message = Mail(
    from_email='[email protected]',
    to_emails='[email protected]',
    subject='Sending an email with attachment',
    html_content='<strong>This is a test email with attachment</strong>')

    file_attachment = Attachment(
    message.attachment = file_attachment

Step 3: Send Your Email

Now that you’ve added your attachment, you can send your email:

    from sendgrid import SendGridAPIClient

    sg = SendGridAPIClient('SENDGRID_API_KEY')
    response = sg.send(message)

And that’s it! You’ve successfully added an attachment to your SendGrid email. Keep in mind that the maximum total message size, including attachments, is 30MB.


The ability to add attachments to your emails can be a useful tool in your development toolbox. SendGrid makes it easy to add attachments to your emails. With just a bit of coding, you can expand the functionality of your emails and better serve your users.

Remember to replace the placeholders in the code samples with your actual data (like your API key, the file path, the email addresses, etc.) and adjust the code to your specific needs.

Happy coding!