You are currently viewing C# Email Sending Made Easy with SMTP and SmtpClient

C# Email Sending Made Easy with SMTP and SmtpClient

Email communication is an integral part of modern software applications, allowing us to send important notifications, updates, and messages to users. In this blog post, we will explore how to send emails in C# using the Simple Mail Transfer Protocol (SMTP). We’ll dive into the code and demonstrate the process with a practical example.

Sending Emails in C# with SMTP

SMTP is a widely used protocol for sending emails over the internet. In C#, we can leverage the SmtpClient class to interact with an SMTP server and send emails. Let’s see how it works:

public class Mailer: SmtpClient
{

    private string email;

    public Mailer(string email, string password) : this(email, password, "smtp.gmail.com", 587) {}
        
    public Mailer(string email, string password, string host, int port): base(host, port) 
    {

        // Set the credentials and enable SSL
        this.Credentials = new NetworkCredential(email, password);
        this.EnableSsl = true;

        this.email = email;

    }

    public void Send(string recipient, string subject, string body) 
    {

        // Create a new MailMessage
        using MailMessage mail = new MailMessage(this.email, recipient)
        {
            // Set the subject and body of the email
            Subject = subject,
            Body = body
        };

        this.Send(mail);

    }

}

The above code demonstrates a Mailer class that encapsulates the functionality of sending emails using the SMTP protocol in C#. It inherits from the SmtpClient class and provides a convenient way to send emails in C#. It encapsulates the necessary configurations and simplifies the process of sending emails with authentication and SSL encryption.

Sending Emails

Now that the Mailer class for sending emails using SMTP in C# has been implemented, let’s see how we can use this class in a practical example. The following code demonstrates the usage of the Mailer class to send an email:

public class App
{

    public static void Main()
    {

        try
        {

            // Define the email and password for the sender's account
            string email = "edwardnyirendajr@gmail.com";
            string password = "xxxxxxxxxxxxxx";

            // Create a Mailer object with the sender's email and password
            Mailer mailer = new Mailer(email, password);

            // Specify the recipient's email address
            string recipient = "edwardmsonijr@gmail.com";

            // Set the subject of the email
            string subject = "C# Email Sending Made Easy with SMTP and SmtpClient";

            // Set the body/content of the email
            string body = "Please subscribe!";

            // Send the email using the Mailer object
            mailer.Send(recipient, subject, body);

        }
        catch (Exception ex)
        {
            // Handle any exceptions that may occur
            Console.WriteLine(ex.Message);
        }
        
        // Print a success message after the email is sent
        Console.WriteLine("Email sent successfully.");
        
    }

}

Conclusion

Sending emails in C# using the SMTP protocol is made easy with the SmtpClient class. By following the example code provided in this blog post, you can integrate email functionality into your C# applications seamlessly. Remember to handle exceptions and error scenarios appropriately to ensure a robust email delivery system.

That was all I had to share with you guys. If you found this code informative and would love to see more, don’t forget to subscribe to our newsletter! 😊

Leave a Reply