/// <summary> /// Send an email at the end of the completion of the application. /// </summary> /// <param name="msg"></param> public virtual void Notify(IDictionary msg) { string successFailMsg = _result.Success ? Name + " Successful" : Name + " Failed"; // Command line has highest precedence, it overrides config setting. bool sendEmailCommandLine = _args.Get <bool>("email", false); bool sendEmailConfig = Conf.GetDefault <bool>("EmailSettings", "enableEmails", false); bool sendEmail = sendEmailCommandLine ? true : sendEmailConfig; bool sendEmailOnlyOnFailureCommandLine = _args.Get <bool>("emailOnlyOnFailure", false); bool sendEmailOnlyOnFailureConfig = Conf.GetDefault <bool>("EmailSettings", "enableEmailsOnlyOnFailures", false); bool sendEmailOnlyOnFailure = sendEmailOnlyOnFailureCommandLine ? true : sendEmailOnlyOnFailureConfig; if ((sendEmail && !sendEmailOnlyOnFailure) || (sendEmail && sendEmailOnlyOnFailure && !_result.Success)) { var message = new NotificationMessage(null, "", "", "", ""); message.To = (string)msg["emailTo"]; message.From = (string)msg["emailFrom"]; message.Subject = msg.Get <string>("emailSubject", successFailMsg); message.Body = BuildSummary(false, null); _emailer.Send(message); } }