Отредактируйте appsettings.json:
{
"EmailSettings": {
"SmtpServer": "smtp.fmailer.ru",
"SmtpPort": 8025,
"SmtpUsername": "your_username",
"SmtpPassword": "your_password",
"EnableSsl": false,
"SenderEmail": "your_from_email_address",
"SenderName": "Your Name"
}
}
В вашем сервисе:
// Add NuGet package: 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.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);
}
}
}
Не забудьте зарегистрировать ваш сервис в Program.cs или Startup.cs:
builder.Services.Configure<EmailSettings >(builder.Configuration.GetSection("EmailSettings"));</EmailSettings >
builder.Services.AddTransient<EmailService>();</EmailService>