Send Email with Attachment in C#

In previous section, I introduced how to send HTML email in C#. In this section, I will introduce how to send email with attachment in C#.

Introduction

To send an email with file attachment, we need to use AddAttachment method. This method can attach a file to the email message from local disk or a remote URL.

Note

Remarks: All of samples in this section are based on first section: Send email in a simple C# project. To compile and run the following example codes successfully, please click here to learn how to create the test project and add reference of EASendMail to your project.

[C# - Send Email with Attachment - Example]

The following example codes demonstrate how to send email with attachment in C#.

Note

To get the full sample projects, please refer to Samples section.

using System;
using System.Collections.Generic;
using System.Text;
using EASendMail; //add EASendMail namespace
namespace mysendemail
{
    class Program
    {
        static void Main(string[] args)
        {
            SmtpMail oMail = new SmtpMail("TryIt");
            SmtpClient oSmtp = new SmtpClient();

            // Set sender email address, please change it to yours
            oMail.From = "test@emailarchitect.net";

            // Set recipient email address, please change it to yours
            oMail.To = "support@emailarchitect.net";

            // Set email subject
            oMail.Subject = "test html email with attachment";

            // Set Html body
            oMail.HtmlBody = "<font size=\"5\">This is</font> <font color=\"red\"><b>a test</b></font>";

            // Your SMTP server address
            SmtpServer oServer = new SmtpServer("smtp.emailarchitect.net");

            // User and password for ESMTP authentication, if your server doesn't require
            // User authentication, please remove the following codes.
            oServer.User = "test@emailarchitect.net";
            oServer.Password = "testpassword";

            // If your smtp server requires SSL connection, please add this line
            // oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
            try
            {
                // Add attachment from local disk
                oMail.AddAttachment( "d:\\test.pdf" );

                // Add attachment from remote website
                oMail.AddAttachment( "http://www.emailarchitect.net/webapp/img/logo.jpg" );
                Console.WriteLine("start to send email with attachment ...");
                oSmtp.SendMail(oServer, oMail);
                Console.WriteLine("email was sent successfully!");
            }
            catch (Exception ep)
            {
                Console.WriteLine("failed to send email with the following error:");
                Console.WriteLine(ep.Message);
            }
        }
    }
}

Next Section

At next section I will introduce how to add embedded images/pictures to email message.

Appendix

Comments

If you have any comments or questions about above example codes, please click here to add your comments.