using MEU.API.Config; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Mail; using System.Threading.Tasks; namespace MEU.API.Services.Emails.Templates { public abstract class EmailContent { public string EmailTemplatePath = Environment.CurrentDirectory + "/Resources/EmailTemplates"; public string Subject { get; set; } public string Reciever { get; set; } public abstract string GetContent(); public abstract bool Send(); public abstract Task SendAsync(); private string smtpserver = ConfigEnvironment.MAILSERVER_SMTPHOST; private int smtpmailport = Int32.Parse(ConfigEnvironment.MAILSERVER_SMTPPORT); private string username = ConfigEnvironment.MAILSERVER_USERNAME; private string password = ConfigEnvironment.MAILSERVER_PASSWORD; protected bool SendEmail(string Receiver, string Subject, string Body) { SmtpClient client = new SmtpClient(smtpserver, smtpmailport); client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(this.username, this.password); MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(username); mailMessage.To.Add(Receiver); mailMessage.Body = Body; mailMessage.Subject = Subject; client.Send(mailMessage); return true; } protected async Task<bool> SendEmailAsync(string Receiver, string Subject, string Body) { SmtpClient client = new SmtpClient(smtpserver, smtpmailport); client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(this.username, this.password); MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(username); mailMessage.To.Add(Receiver); mailMessage.Body = Body; mailMessage.IsBodyHtml = true; mailMessage.Subject = Subject; await client.SendMailAsync(mailMessage); return true; } } }