Beispiel #1
0
        /// <summary>
        /// Gets the command line arguments for the reporting process for a given report date.
        /// </summary>
        /// <param name="reportDate">The date of the report to be generated.</param>
        /// <param name="emailReport">Flag that determines if report should be e-mailed, if enabled.</param>
        public string GetArguments(DateTime reportDate, bool emailReport)
        {
            const string CryptoKey = "0679d9ae-aca5-4702-a3f5-604415096987";

            string arguments = string.Format(
                "{0} " +
                "--reportDate=\" {1:yyyy-MM-dd} \"",
                GetArguments(),
                reportDate);

            if (emailReport && EnableReportEmail)
            {
                arguments = string.Format(
                    "{0} " +
                    "--smtpServer=\" {1} \" " +
                    "--fromAddress=\" {2} \" " +
                    "--toAddresses=\" {3} \" " +
                    "--username=\" {4} \" " +
                    "--password=\" {5} \"",
                    arguments,
                    SmtpServer,
                    FromAddress,
                    ToAddresses,
                    SmtpUsername,
                    SmtpPassword.Encrypt(CryptoKey, CipherStrength.Aes256));
            }

            return(arguments);
        }
        /// <summary>
        /// Returns true if ComDayCqMailerDefaultMailServiceProperties instances are equal
        /// </summary>
        /// <param name="other">Instance of ComDayCqMailerDefaultMailServiceProperties to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(ComDayCqMailerDefaultMailServiceProperties other)
        {
            if (other is null)
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     SmtpHost == other.SmtpHost ||
                     SmtpHost != null &&
                     SmtpHost.Equals(other.SmtpHost)
                     ) &&
                 (
                     SmtpPort == other.SmtpPort ||
                     SmtpPort != null &&
                     SmtpPort.Equals(other.SmtpPort)
                 ) &&
                 (
                     SmtpUser == other.SmtpUser ||
                     SmtpUser != null &&
                     SmtpUser.Equals(other.SmtpUser)
                 ) &&
                 (
                     SmtpPassword == other.SmtpPassword ||
                     SmtpPassword != null &&
                     SmtpPassword.Equals(other.SmtpPassword)
                 ) &&
                 (
                     FromAddress == other.FromAddress ||
                     FromAddress != null &&
                     FromAddress.Equals(other.FromAddress)
                 ) &&
                 (
                     SmtpSsl == other.SmtpSsl ||
                     SmtpSsl != null &&
                     SmtpSsl.Equals(other.SmtpSsl)
                 ) &&
                 (
                     SmtpStarttls == other.SmtpStarttls ||
                     SmtpStarttls != null &&
                     SmtpStarttls.Equals(other.SmtpStarttls)
                 ) &&
                 (
                     DebugEmail == other.DebugEmail ||
                     DebugEmail != null &&
                     DebugEmail.Equals(other.DebugEmail)
                 ));
        }
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (SmtpHost != null)
         {
             hashCode = hashCode * 59 + SmtpHost.GetHashCode();
         }
         if (SmtpPort != null)
         {
             hashCode = hashCode * 59 + SmtpPort.GetHashCode();
         }
         if (SmtpUser != null)
         {
             hashCode = hashCode * 59 + SmtpUser.GetHashCode();
         }
         if (SmtpPassword != null)
         {
             hashCode = hashCode * 59 + SmtpPassword.GetHashCode();
         }
         if (FromAddress != null)
         {
             hashCode = hashCode * 59 + FromAddress.GetHashCode();
         }
         if (SmtpSsl != null)
         {
             hashCode = hashCode * 59 + SmtpSsl.GetHashCode();
         }
         if (SmtpStarttls != null)
         {
             hashCode = hashCode * 59 + SmtpStarttls.GetHashCode();
         }
         if (DebugEmail != null)
         {
             hashCode = hashCode * 59 + DebugEmail.GetHashCode();
         }
         return(hashCode);
     }
 }
Beispiel #4
0
        private string GetSmtpSettingsKey(LogEventInfo logEvent)
        {
            var sb = new StringBuilder();

            sb.Append(From.Render(logEvent));

            sb.Append("|");
            sb.Append(To.Render(logEvent));

            sb.Append("|");
            if (CC != null)
            {
                sb.Append(CC.Render(logEvent));
            }

            sb.Append("|");
            if (Bcc != null)
            {
                sb.Append(Bcc.Render(logEvent));
            }

            sb.Append("|");
            sb.Append(SmtpServer.Render(logEvent));
            if (SmtpPassword != null)
            {
                sb.Append(SmtpPassword.Render(logEvent));
            }

            sb.Append("|");
            if (SmtpUserName != null)
            {
                sb.Append(SmtpUserName.Render(logEvent));
            }

            return(sb.ToString());
        }
Beispiel #5
0
        private void ProcessSingleMailMessage(List <AsyncLogEventInfo> events)
        {
            try
            {
                var firstEvent = events[0].LogEvent;
                var lastEvent  = events[events.Count - 1].LogEvent;

                // unbuffered case, create a local buffer, append header, body and footer
                var bodyBuffer = new StringBuilder();
                if (Header != null)
                {
                    bodyBuffer.Append(Header.Render(firstEvent));
                    if (AddNewLines)
                    {
                        bodyBuffer.Append("\n");
                    }
                }

                foreach (var eventInfo in events)
                {
                    bodyBuffer.Append(Layout.Render(eventInfo.LogEvent));
                    if (AddNewLines)
                    {
                        bodyBuffer.Append("\n");
                    }
                }

                if (Footer != null)
                {
                    bodyBuffer.Append(Footer.Render(lastEvent));
                    if (AddNewLines)
                    {
                        bodyBuffer.Append("\n");
                    }
                }

                using (var msg = new MailMessage())
                {
                    SetupMailMessage(msg, lastEvent);
                    msg.Body = bodyBuffer.ToString();

                    using (var client = CreateSmtpClient())
                    {
                        client.Host      = SmtpServer.Render(lastEvent);
                        client.Port      = SmtpPort;
                        client.EnableSsl = EnableSsl;

                        InternalLogger.Debug("Sending mail to {0} using {1}:{2} (ssl={3})", msg.To, client.Host, client.Port, client.EnableSsl);
                        InternalLogger.Trace("  Subject: '{0}'", msg.Subject);
                        InternalLogger.Trace("  From: '{0}'", msg.From.ToString());
                        if (SmtpAuthentication == SmtpAuthenticationMode.Ntlm)
                        {
                            InternalLogger.Trace("  Using NTLM authentication.");
                            client.Credentials = CredentialCache.DefaultNetworkCredentials;
                        }
                        else if (SmtpAuthentication == SmtpAuthenticationMode.Basic)
                        {
                            var username = SmtpUserName.Render(lastEvent);
                            var password = SmtpPassword.Render(lastEvent);

                            InternalLogger.Trace("  Using basic authentication: Username='******' Password='******'", username, new string('*', password.Length));
                            client.Credentials = new NetworkCredential(username, password);
                        }

                        client.Send(msg);

                        foreach (var ev in events)
                        {
                            ev.Continuation(null);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                if (exception.MustBeRethrown())
                {
                    throw;
                }

                foreach (var ev in events)
                {
                    ev.Continuation(exception);
                }
            }
        }
Beispiel #6
0
 public void UpdateMailSettings()
 {
     SqlHelpers.Update(SqlStatements.SQL_UPDATE_MAIL_SETTINGS.FormatWith(MailServer.FixSqlString(), ServerPort,
                                                                         SmtpUser.FixSqlString(75), SmtpPassword.EncryptString(), FromEmail.FixSqlString(75), FromUsername.FixSqlString(75),
                                                                         (RequireAuth) ? "1" : "0", (RequireSsl) ? "1" : "0", Id));
     _instance = LoadSystemSettings();
 }