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)
        {
            try
            {
                SmtpMail oMail = new SmtpMail("TryIt");

                // 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>";

                // 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");

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

                // User and password for ESMTP authentication
                oServer.User = "test@emailarchitect.net";
                oServer.Password = "testpassword";

                // Most mordern SMTP servers require SSL/TLS connection now.
                // ConnectTryTLS means if server supports SSL/TLS, SSL/TLS will be used automatically.
                oServer.ConnectType = SmtpConnectType.ConnectTryTLS;

                // If your SMTP server uses 587 port
                // oServer.Port = 587;

                // If your SMTP server requires SSL/TLS connection on 25/587/465 port
                // oServer.Port = 25; // 25 or 587 or 465
                // oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;

                Console.WriteLine("start to send email with attachment ...");

                SmtpClient oSmtp = new SmtpClient();
                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.