Код: Выделить всё
using MailKit.Net.Smtp;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using MimeKit;
using TheHandymanOfCapeCod.Core.Configuration;
using TheHandymanOfCapeCod.Core.Contracts;
using TheHandymanOfCapeCod.Core.Models.MailService;
namespace TheHandymanOfCapeCod.Core.Services
{
public class MailService : IMailService
{
private readonly MailSettings _mailSettings;
private readonly ILogger logger;
public MailService(
IOptions mailSettingsOptions,
ILogger _logger)
{
_mailSettings = mailSettingsOptions.Value;
logger = _logger;
}
public async Task SendMailAsync(MailData mailData)
{
try
{
using (MimeMessage emailMessage = new MimeMessage())
{
MailboxAddress emailFrom = new MailboxAddress(_mailSettings.SenderName, _mailSettings.SenderEmail);
emailMessage.From.Add(emailFrom);
MailboxAddress emailTo = new MailboxAddress(mailData.EmailToName, mailData.EmailToId);
emailMessage.To.Add(emailTo);
// you can add the CCs and BCCs here.
//emailMessage.Cc.Add(new MailboxAddress("Cc Receiver", "cc@example.com"));
//emailMessage.Bcc.Add(new MailboxAddress("Bcc Receiver", "bcc@example.com"));
emailMessage.Subject = mailData.EmailSubject;
BodyBuilder emailBodyBuilder = new BodyBuilder();
emailBodyBuilder.TextBody = mailData.EmailBody;
emailMessage.Body = emailBodyBuilder.ToMessageBody();
//this is the SmtpClient from the Mailkit.Net.Smtp namespace, not the System.Net.Mail one
using (SmtpClient mailClient = new SmtpClient())
{
await mailClient.ConnectAsync(_mailSettings.Server, _mailSettings.Port, MailKit.Security.SecureSocketOptions.StartTls);
await mailClient.AuthenticateAsync(_mailSettings.UserName, _mailSettings.Password);
await mailClient.SendAsync(emailMessage);
await mailClient.DisconnectAsync(true);
}
}
return true;
}
catch (Exception ex)
{
logger.LogError(ex, "Something went wrong!");
return false;
}
}
}
}
Я пытался отправить сообщение, но сообщение не прошло.
Подробнее здесь: https://stackoverflow.com/questions/786 ... al-machine
Мобильная версия