Send Email using Hotmail/Live/Outlook/Office 365 in C#

In previous section, I introduced how to send email using Yahoo account. In this section, I will introduce how to send email using Hotmail/Live/Office 365 in C#.

Introduction

Hotmail/Live/Outlook.com SMTP server address is smtp.live.com. It requires explicit SSL (TLS) connection to do user authentication, and you should use your Hotmail/Live/Outlook.com email address as the user name for ESMTP authentication. For example: your email is myid@hotmail.com, and then the user name should be myid@hotmail.com.

Server Port SSL/TLS
smtp.live.com 25, 587 TLS

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 using Hotmail/Live/Outlook.com over Explicit SSL (TLS) on 25 or 587 Port - Example]

The following example codes demonstrate how to send email using Hotmail/Live/Outlook.com in C# over TLS 25 or 587 port.

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();

            // Your Hotmail email address
            oMail.From = "liveid@hotmail.com";

            // Set recipient email address
            oMail.To = "support@emailarchitect.net";

            // Set email subject
            oMail.Subject = "test email from hotmail account";

            // Set email body
            oMail.TextBody = "this is a test email sent from c# project with hotmail.";
            // Hotmail SMTP server address
            SmtpServer oServer = new SmtpServer("smtp.live.com");

            // Hotmail user authentication should use your
            // email address as the user name.
            oServer.User = "liveid@hotmail.com";
            oServer.Password = "yourpassword";

            // Set 587 port, if you want to use 25 port, please change 587 to 25
            oServer.Port = 587;

            // detect SSL/TLS connection automatically
            oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;

            try
            {
                Console.WriteLine("start to send email over SSL...");
                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);
            }
        }
    }
}

Send Email using Office 365

First of all, you should go to Office 365 “Outlook” -> “Options” -> “See All Options” -> “Account” -> “My Account” -> “Settings for POP, IMAP, and SMTP access”. You will get your Office 365 SMTP server address and port. Then you can use your Office 365 SMTP server, port, user/password in the codes.

By default, Office 365 SMTP server uses 587 port and explicit SSL (TLS) connection.

Server Port SSL/TLS
smtp.office365.com 25, 587 (recommended) TLS

[C# - Send Email using Office 365 over Explicit SSL (TLS) on 587 Port - Example]

The following example codes demonstrate how to send email using Office 365 in C# over TLS 587 port.

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();

            // Your Offic 365 email address
            oMail.From = "myid@mydomain";

            // Set recipient email address
            oMail.To = "support@emailarchitect.net";

            // Set email subject
            oMail.Subject = "test email from office 365 account";

            // Set email body
            oMail.TextBody = "this is a test email sent from c# project.";

            // Your Office 365 SMTP server address,
            // You should get it from outlook web access.
            SmtpServer oServer = new SmtpServer("smtp.office365.com");

            // user authentication should use your
            // email address as the user name.
            oServer.User = "myid@mydomain";
            oServer.Password = "yourpassword";

            // Set 587 port
            oServer.Port = 587;

            // detect SSL/TLS connection automatically
            oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;

            try
            {
                Console.WriteLine("start to send email over SSL...");
                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 send email without specified SMTP server.

Appendix

Comments

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