Docs / SMTP Setup - ASP.NET

SMTP setup — ASP.NET Core (.NET)

You can get them on the token management page. For security reasons, a token is shown only once — at the moment it is created.

Edit appsettings.json:

appsettings.json
{
  "EmailSettings": {
    "SmtpServer": "smtp.postwing.app",
    "SmtpPort": 8025,
    "SmtpUsername": "your_username",
    "SmtpPassword": "your_password",
    "EnableSsl": false,
    "SenderEmail": "your_from_email_address",
    "SenderName": "Your Name"
  }
}

In your service:

csharp
// Add NuGet packages: Microsoft.Extensions.Options and MailKit

using MailKit.Net.Smtp;
using Microsoft.Extensions.Options;
using MimeKit;

public class EmailSettings
{
    public string SmtpServer { get; set; }
    public int SmtpPort { get; set; }
    public string SmtpUsername { get; set; }
    public string SmtpPassword { get; set; }
    public bool EnableSsl { get; set; }
    public string SenderEmail { get; set; }
    public string SenderName { get; set; }
}

public class EmailService
{
    private readonly EmailSettings _emailSettings;

    public EmailService(IOptions<EmailSettings> emailSettings)
    {
        _emailSettings = emailSettings.Value;
    }

    public void SendEmail(string to, string subject, string body)
    {
        var message = new MimeMessage();
        message.From.Add(new MailboxAddress(_emailSettings.SenderName, _emailSettings.SenderEmail));
        message.To.Add(new MailboxAddress("", to));
        message.Subject = subject;

        var bodyBuilder = new BodyBuilder
        {
            HtmlBody = body
        };

        message.Body = bodyBuilder.ToMessageBody();

        using (var client = new SmtpClient())
        {
            client.ServerCertificateValidationCallback = (s, c, h, e) => true;
            client.Connect(_emailSettings.SmtpServer, _emailSettings.SmtpPort, false);
            client.Authenticate(_emailSettings.SmtpUsername, _emailSettings.SmtpPassword);
            client.Send(message);
            client.Disconnect(true);
        }
    }
}

Don’t forget to register your service in Program.cs or Startup.cs:

csharp
builder.Services.Configure<EmailSettings>(builder.Configuration.GetSection("EmailSettings"));
builder.Services.AddTransient<EmailService>();