EmailContent.cs 2.21 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
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;

        }

    }
}