Send Email Using API in .NET Core With Postman

In this article, we will learn how to send an email in ASP.Net Core Web API with Postman.

Create the ASP.Net Core Web API Project

First, you need to create the ASP.Net core web project using the ASP.Net core web API.

Install MailKit & Mimekit Nuget Packages in project

In Menubar go to following order :

Tools>>Nuget Package Manager >> Manage Nuget Pakages for Solution

It will open follwing window. Add both MimeKit & MailKit packages in your project.

mimekit & mailkit packages

Access the application.json file

To access the appsettings.json file we need to create a configuration folder inside our ASP.NET Core Web API project. And create a class with name as EmailSetting.cs.

namespace EmailApi.Models
    public class EmailSetting
        public string EmailId { get; set; }
        public string Name { get; set; }
        public string Password { get; set; }
        public string Host { get; set; }
        public int Port { get; set; }
        public bool UseSSL { get; set; }

After creating Emailsetting .cs file , Add SMPT server & Email Account Detail in appsettings.json file as following:

"EmailSetting": {
    "EMailId": "your email address..",
    "Name": "name...",
    "Password": "password...",
    "Host": "",
    "Port": 587

We have data in application.json file.To access this data add instance of Emaillsetting in startup file. Open the startup file and add  following line in ConfigureServices method.


Now create another class named EmailData.cs

namespace EmailApi.Model
    public class EmailData
        public string EmailToId { get; set; }
        public string EmailToName { get; set; }
        public string EmailSubject { get; set; }
        public string EmailBody { get; set; }

Now,we will need to allow your Gmail account to send emails using external (less- secure applications). To enable Less Secure App Access, go to and turn ON Less Secure App Access.

Create Interface that responsible to send email.

Let’s create interface inside services folder with following method.

namespace EmailApi.Services
    public interface IEmailService
        string SendEmail(EmailData emailData);

Now create class that implement interface.

Create another class in services folder with name EmailServices.cs to implement interface as following.

using EmailApi.Model;
using EmailApi.Models;
using MailKit.Net.Smtp;
using Microsoft.Extensions.Options;
using MimeKit;
using System;

namespace EmailApi.Services
    public class EmailService : IEmailService
        EmailSetting _emailSettings = null;
        public EmailService(IOptions<EmailSetting> options)
            _emailSettings = options.Value;

        public string SendEmail(EmailData emailData)
                MimeMessage emailMessage = new MimeMessage();
                MailboxAddress emailFrom = new MailboxAddress(_emailSettings.Name, _emailSettings.EmailId);
                MailboxAddress emailTo = new MailboxAddress(emailData.EmailToName, emailData.EmailToId);
                emailMessage.Subject = emailData.EmailSubject;
                BodyBuilder emailBodyBuilder = new BodyBuilder();

                emailBodyBuilder.TextBody = emailData.EmailBody;
                emailMessage.Body = emailBodyBuilder.ToMessageBody();

                SmtpClient emailClient = new SmtpClient();
                emailClient.Connect(_emailSettings.Host, _emailSettings.Port, _emailSettings.UseSSL);
                emailClient.Authenticate(_emailSettings.EmailId, _emailSettings.Password);
                return "Email Send Successfully....";

            catch (Exception)
                return "Email Not Sent...";

Add the Controller in the project

Create the Email Controller in which you define the endpoint. Send Email is responsible for sending the email.

namespace EmailApi.Controllers

    public class EmailController : ControllerBase
        IEmailService _emailService = null;
        public EmployeeDbContext context;
        public EmailController(IEmailService emailService)
            _emailService = emailService;
        public string SendEmail(EmailData emailData)
            return _emailService.SendEmail(emailData);

After creating controller run your project & open postman.

select POST method to send mail & add Email information in body part as above.Click send button to send email.You will get the following


Submit a Comment

Your email address will not be published. Required fields are marked *


Select Categories