Exemplo n.º 1
0
        protected override void Execute(CodeActivityContext context)
        {
            try
            {
                bool useSSL = context.GetValue(UseSSL);

                string[] RecieverList = To.Get(context).Split(';');
                var      mailMessage  = new System.Net.Mail.MailMessage();
                foreach (string address in RecieverList)
                {
                    if (address.Trim() != "")
                    {
                        mailMessage.To.Add(address.Trim());
                    }
                }

                mailMessage.Subject = Subject.Get(context);
                mailMessage.Body    = Body.Get(context);

                //Get email setting from extension
                IEmailSetting settings = context.GetExtension <IEmailSetting>();

                if (settings != null)
                {
                    var FromAddress = settings.GetAddress();
                    var Host        = settings.GetHost();
                    var UserName    = settings.GetUsername();
                    var Password    = settings.GetPassword();

                    if (FromAddress == null | Host == null | UserName == null | Password == null)
                    {
                        var record = new CustomTrackingRecord("Warning");
                        record.Data.Add(new KeyValuePair <string, object>("Message", "E-mail extension not configured. Please make sure to run the workflow with the environment variables configured."));
                        context.Track(record);
                        return;
                    }

                    mailMessage.From = new System.Net.Mail.MailAddress(FromAddress);
                    var smtp = new System.Net.Mail.SmtpClient();
                    smtp.Host        = Host;
                    smtp.Credentials = new System.Net.NetworkCredential(UserName, Password);
                    smtp.EnableSsl   = useSSL;
                    smtp.Send(mailMessage);
                }
                else
                {
                    var record = new CustomTrackingRecord("Warning");
                    record.Data.Add(new KeyValuePair <string, object>("Message", "E-mail extension not found. Please make sure to run the workflow with a configured EmailSetting extension."));
                    context.Track(record);
                }
            }
            catch (Exception ex)
            {
                var record = new CustomTrackingRecord("Warning");
                record.Data.Add(new KeyValuePair <string, object>("Message", "Error while sending e-mail.\n" + ex.ToString()));
                context.Track(record);
            }
        }
Exemplo n.º 2
0
 public void Update(IEmailSetting emailSetting)
 {
     SettingJson = emailSetting.SettingJson;
     Name        = emailSetting.Name;
     if (emailSetting.Emails != null)
     {
         foreach (var item in emailSetting.Emails)
         {
             EmailEntities.Add(new EmailEntity(item));
         }
     }
 }
Exemplo n.º 3
0
 public EmailSettingEntity(IEmailSetting emailSetting)
 {
     Id          = Guid.NewGuid();
     SettingJson = emailSetting.SettingJson;
     Name        = emailSetting.Name;
     if (emailSetting.Emails != null)
     {
         foreach (var item in emailSetting.Emails)
         {
             EmailEntities.Add(new EmailEntity(item));
         }
     }
 }
Exemplo n.º 4
0
 public EmailSender(IEmailSetting setting)
 {
     _emailSettings = setting;
 }
Exemplo n.º 5
0
 public EmailAccount(IEmailSetting emailSetting)
 {
     _emailSetting = emailSetting;
 }
Exemplo n.º 6
0
 public void CreateEmailSetting(IEmailSetting emailSetting)
 {
     _emailSettingData.Create(emailSetting);
 }
Exemplo n.º 7
0
 public void UpdateEmailSetting(IEmailSetting emailSetting, Guid id)
 {
     _emailSettingData.Update(emailSetting, id);
 }