Example #1
0
        public void TestConfigProviderConstructor()
        {
            var configProvider = new FixedConfigProvider();

            configProvider.AddConfig(MailSenderConfig.MailSenderConfigKeys.SenderName, SenderName);
            configProvider.AddConfig(MailSenderConfig.MailSenderConfigKeys.SenderAddress, SenderAddress);
            configProvider.AddConfig(SmtpConfig.ConfigKeys.ServerName, ServerName);
            configProvider.AddConfig(SmtpConfig.ConfigKeys.Port, Port.ToString(CultureInfo.InvariantCulture));
            configProvider.AddConfig(SmtpConfig.ConfigKeys.UserName, Username);
            configProvider.AddConfig(SmtpConfig.ConfigKeys.Password, Password);
            configProvider.AddConfig(SmtpConfig.ConfigKeys.EnableSsl, EnableSsl.ToString());

            var config = new MailSenderConfig(configProvider);

            Assert.That(config.ServerName, Is.EqualTo(ServerName));
            Assert.That(config.Port, Is.EqualTo(Port));
            Assert.That(config.UserCredentials, Is.Not.Null);
            Assert.That(config.UserCredentials.UserName, Is.EqualTo(Username));
            Assert.That(config.UserCredentials.Password, Is.EqualTo(Password));
            Assert.That(config.Username, Is.EqualTo(Username));
            Assert.That(config.Password, Is.EqualTo(Password));
            Assert.That(config.Sender, Is.Not.Null);
            Assert.That(config.Sender.Address, Is.EqualTo(SenderAddress));
            Assert.That(config.Sender.DisplayName, Is.EqualTo(SenderName));
            Assert.That(config.SenderName, Is.EqualTo(SenderName));
            Assert.That(config.SenderAddress, Is.EqualTo(SenderAddress));
            Assert.That(config.EnableSsl, Is.EqualTo(EnableSsl));
        }
Example #2
0
        protected override void Execute(CodeActivityContext context)
        {
            SmtpClient smtpClient = new SmtpClient();

            if (!string.IsNullOrEmpty(SmtpHost.Get(context)))
            {
                smtpClient.Host = SmtpHost.Get(context);
            }
            if (SmtpPort.Get(context).HasValue)
            {
                smtpClient.Port = SmtpPort.Get(context).Value;
            }
            if (!string.IsNullOrEmpty(Username.Get(context)))
            {
                smtpClient.Credentials = new System.Net.NetworkCredential(Username.Get(context), Password.Get(context));
            }
            smtpClient.EnableSsl = EnableSsl.Get(context);

            MailMessage mailMessage = new MailMessage();

            mailMessage.To.Add(To.Get(context));
            mailMessage.From       = new MailAddress(From.Get(context));
            mailMessage.Subject    = Subject.Get(context);
            mailMessage.Body       = Body.Get(context);
            mailMessage.IsBodyHtml = IsBodyHtml.Get(context);

            if (SendAsync.Get(context))
            {
                smtpClient.SendAsync(mailMessage, null);
            }
            else
            {
                smtpClient.Send(mailMessage);
            }
        }
Example #3
0
        public void TestConstructorWithConfigProvider()
        {
            var configProvider = new FixedConfigProvider();

            configProvider.AddConfig(SmtpConfig.ConfigKeys.ServerName, ServerName);
            configProvider.AddConfig(SmtpConfig.ConfigKeys.Port, Port.ToString(CultureInfo.InvariantCulture));
            configProvider.AddConfig(SmtpConfig.ConfigKeys.UserName, Username);
            configProvider.AddConfig(SmtpConfig.ConfigKeys.Password, Password);
            configProvider.AddConfig(SmtpConfig.ConfigKeys.EnableSsl, EnableSsl.ToString());
            var smtpConfig = new SmtpConfig(configProvider);

            CheckSmtpConfig(smtpConfig);
        }
Example #4
0
        /// <summary>
        ///  This override supports SSL (which is required by gmail).
        ///
        /// <inheritdoc/>
        /// </summary>
        /// <param name="messageBody"></param>
        override protected void SendEmail(string messageBody)
        {
            if (!string.IsNullOrEmpty(messageBody) &&
                messageBody.Contains("Skip AnjLab.FX.Log4Net.Appender.SmtpAppender"))
            {
                return;
            }

            // .NET 2.0 has a new API for SMTP email System.Net.Mail
            // This API supports credentials and multiple hosts correctly.
            // The old API is deprecated.

            // Create and configure the smtp client
            var smtpClient = new SmtpClient();

            if (!string.IsNullOrEmpty(SmtpHost))
            {
                smtpClient.Host = SmtpHost;
            }
            smtpClient.Port           = Port;
            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

            if (Authentication == SmtpAuthentication.Basic)
            {
                // Perform basic authentication
                smtpClient.Credentials = new System.Net.NetworkCredential(Username, Password);
            }
            else if (Authentication == SmtpAuthentication.Ntlm)
            {
                // Perform integrated authentication (NTLM)
                smtpClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
            }

            if (!string.IsNullOrEmpty(EnableSsl))
            {
                smtpClient.EnableSsl = "true".Equals(EnableSsl.ToLower());
            }

            var mailMessage = new MailMessage
            {
                Body     = messageBody,
                From     = new MailAddress(From),
                Subject  = Subject,
                Priority = Priority
            };

            mailMessage.To.Add(To);

            //  TODO: Send async?
            smtpClient.Send(mailMessage);
        }
        private void AddDefaultXPackSettings()
        {
            if (!XPackInstalled)
            {
                return;
            }

            var securityEnabled = EnableSecurity.ToString().ToLowerInvariant();
            var sslEnabled      = EnableSsl.ToString().ToLowerInvariant();

            AddSecuritySetting("enabled", securityEnabled);

            AddSecuritySetting("http.ssl.enabled", sslEnabled);
            AddSecuritySetting("transport.ssl.enabled", sslEnabled);
            if (EnableSecurity && EnableSsl)
            {
                AddSecuritySetting("authc.realms.pki1.enabled", sslEnabled, "<7.0.0-beta1");
                AddSecuritySetting("authc.realms.pki.pki1.enabled", sslEnabled, ">=7.0.0-beta1");
            }

            if (EnableSsl)
            {
                AddSecuritySetting("authc.token.enabled", "true", ">=5.5.0");
                if (Version < "7.0.0-beta1")
                {
                    Add("xpack.ssl.key", FileSystem.NodePrivateKey);
                    Add("xpack.ssl.certificate", FileSystem.NodeCertificate);
                    Add("xpack.ssl.certificate_authorities", FileSystem.CaCertificate);
                }
                else
                {
                    Add("xpack.security.transport.ssl.key", FileSystem.NodePrivateKey);
                    Add("xpack.security.transport.ssl.certificate", FileSystem.NodeCertificate);
                    Add("xpack.security.transport.ssl.certificate_authorities", FileSystem.CaCertificate);

                    Add("xpack.security.http.ssl.key", FileSystem.NodePrivateKey);
                    Add("xpack.security.http.ssl.certificate", FileSystem.NodeCertificate);
                    Add("xpack.security.http.ssl.certificate_authorities", FileSystem.CaCertificate);
                }
            }
        }
Example #6
0
        protected override void Execute(CodeActivityContext context)
        {
            try
            {
                MailMessage message = new MailMessage();
                SmtpClient  smtp    = new SmtpClient();
                if (string.IsNullOrEmpty(FromEmailAddress.Get(context)))
                {
                    message.From = new MailAddress(SMTP_Email.Get(context));
                }
                else
                {
                    message.From = new MailAddress(FromEmailAddress.Get(context));
                }


                foreach (string emailid in ToEmailAddress.Get(context).Trim().Split(';'))
                {
                    message.To.Add(new MailAddress(emailid));
                }

                if (!string.IsNullOrEmpty(CCEmailAddress.Get(context)))
                {
                    foreach (string emailid in CCEmailAddress.Get(context).Trim().Split(';'))
                    {
                        message.CC.Add(new MailAddress(emailid));
                    }
                }

                if (!string.IsNullOrEmpty(BccEmailAddress.Get(context)))
                {
                    foreach (string emailid in BccEmailAddress.Get(context).Trim().Split(';'))
                    {
                        message.Bcc.Add(new MailAddress(emailid));
                    }
                }


                message.Subject    = Subject.Get(context).Trim();
                message.IsBodyHtml = IsBodyHtml.Get(context); //to make message body as html
                message.Body       = Body.Get(context).Trim();

                Console.WriteLine("----------------------");


                if (MailAttachments.Get(context) != null)
                {
                    Console.WriteLine("Number of Attachments: " + MailAttachments.Get(context).Count.ToString());
                    foreach (string file in MailAttachments.Get(context))
                    {
                        message.Attachments.Add(new Attachment(file));
                    }
                }


                smtp.Port                  = Convert.ToInt32(SMTP_Port.Get(context));
                smtp.Host                  = SMTP_Server.Get(context).Trim();
                smtp.EnableSsl             = EnableSsl.Get(context);
                smtp.UseDefaultCredentials = false;
                smtp.Credentials           = new System.Net.NetworkCredential(SMTP_Email.Get(context), SMTP_password.Get(context));
                smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                smtp.Send(message);
                IsSuccess.Set(context, true);
                Result.Set(context, string.Empty);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.Message + "--" + e.Source);
                IsSuccess.Set(context, false);
                Result.Set(context, "Error: " + e.Message);
            }
        }