1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using MailKit.Net.Smtp;
- using Microsoft.Extensions.Options;
- using MimeKit;
- using MTWorkHR.Core.Email;
- using MTWorkHR.Core.Entities;
- using MTWorkHR.Core.Global;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace MTWorkHR.Infrastructure.EmailService
- {
- public class MailSender : IMailSender
- {
- public AppSettingsConfiguration _configuration { get; }
- public MailSender(AppSettingsConfiguration configuration)
- {
- _configuration = configuration;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public async Task<bool> SendEmail(EmailMessage email)
- {
- var mailTo = email.To;
- var settings = _configuration.MailSettings;
- if (settings.FromAddress == null || settings.FromAddress== "" || settings.Password == null || settings.TemplatePath == null || settings.Host == null || settings.Port == 0 || mailTo == null)
- return false;
-
-
-
-
-
- var emailObj = new MimeMessage();
- emailObj.Sender = MailboxAddress.Parse(_configuration.MailSettings.FromAddress);
- emailObj.To.Add(MailboxAddress.Parse(mailTo));
- emailObj.Subject = email.Subject;
- var builder = new BodyBuilder();
- email.Body = email.Body +
- ( string.IsNullOrEmpty( email.url ) ?"": "Please click on <a href =\"" + email.url + "\">this link</a> to confirm your email address is correct. ");
- builder.HtmlBody = email.Body;
- emailObj.Body = builder.ToMessageBody();
- try
- {
- using var smtp = new SmtpClient();
- smtp.Connect(_configuration.MailSettings.Host, _configuration.MailSettings.Port, MailKit.Security.SecureSocketOptions.StartTls);
- smtp.Authenticate(_configuration.MailSettings.FromAddress, _configuration.MailSettings.Password);
- await smtp.SendAsync(emailObj);
- smtp.Disconnect(true);
- }catch (Exception ex) { var ms = ex.Message; }
- return true;
- }
- }
- }
|