DEV Community

harshvardhan
harshvardhan

Posted on

Sending Email Using Gmail SMTP

*1. Create the Email Service Interface
*

public interface IEmailService
{
Task SendEmailAsync(
string recipientEmail,
string subject,
string body);
}

2. Implement the Email Service

using System.Net;
using System.Net.Mail;

public class EmailService : IEmailService
{
private readonly IConfiguration _configuration;

public EmailService(IConfiguration configuration)
{
    _configuration = configuration;
}

public async Task SendEmailAsync(
    string recipientEmail,
    string subject,
    string body)
{
    var senderEmail =
        _configuration["EmailSettings:Email"];

    var senderPassword =
        _configuration["EmailSettings:Password"];

    using var mailMessage = new MailMessage
    {
        From = new MailAddress(senderEmail!),
        Subject = subject,
        Body = body,
        IsBodyHtml = true
    };

    mailMessage.To.Add(recipientEmail);

    using var smtpClient =
        new SmtpClient("smtp.gmail.com", 587)
        {
            EnableSsl = true,
            Credentials = new NetworkCredential(
                senderEmail,
                senderPassword)
        };

    await smtpClient.SendMailAsync(mailMessage);
}
Enter fullscreen mode Exit fullscreen mode

}

3. Add Email Configuration

{
"EmailSettings": {
"Email": "your-email@gmail.com",
"Password": "your-app-password"
}

Top comments (0)