/**
   * @param act
   * @param locale
   * @param exception
   */
  private void sendKrashAuditEmail(Act act, Locale locale, Exception exception) {
    ResourceBundle bundle = ResourceBundle.getBundle(BUNDLE_NAME, locale);
    String emailFrom = bundle.getString(RECIPIENT_KEY);
    String projectName = getProjectNameFromAct(act);

    if (isAllowedToSendKrashReport && CollectionUtils.isNotEmpty(krashReportMailList)) {
      Set<String> emailToSet = new HashSet<>();
      emailToSet.addAll(krashReportMailList);
      String host = "";
      try {
        host = InetAddress.getLocalHost().getHostName();
      } catch (UnknownHostException uhe) {
      }

      String msgSubject = bundle.getString(KRASH_ADMIN_SUBJECT_KEY);
      msgSubject = StringUtils.replace(msgSubject, PROJECT_NAME_TO_REPLACE, projectName);
      msgSubject = StringUtils.replace(msgSubject, HOST_TO_REPLACE, host);

      String msgContent = bundle.getString(KRASH_ADMIN_MSG_CONTENT_KEY);
      msgContent = StringUtils.replace(msgContent, PROJECT_NAME_TO_REPLACE, projectName);
      msgContent =
          StringUtils.replace(
              msgContent, USER_EMAIL_TO_REPLACE, act.getContract().getUser().getEmail1());
      msgContent = StringUtils.replace(msgContent, HOST_TO_REPLACE, host);
      msgContent =
          StringUtils.replace(
              msgContent, EXCEPTION_TO_REPLACE, ExceptionUtils.getStackTrace(exception));
      if (act.getAudit().getSubject() != null) {
        msgContent =
            StringUtils.replace(
                msgContent, AUDIT_URL_TO_REPLACE, act.getAudit().getSubject().getURL());
      }
      LOGGER.info(
          "krash email sent to " + krashReportMailList + " on audit n° " + act.getAudit().getId());
      sendEmail(emailFrom, emailToSet, msgSubject, msgContent);
    }

    String emailTo = act.getContract().getUser().getEmail1();
    if (this.emailSentToUserExclusionList.contains(emailTo)) {
      LOGGER.info("Email not set cause user " + emailTo + " belongs to " + "exlusion list");
      return;
    }
    Set<String> emailToSet = new HashSet<>();
    emailToSet.add(emailTo);
    String msgSubject = bundle.getString(KRASH_SUBJECT_KEY);
    msgSubject = StringUtils.replace(msgSubject, PROJECT_NAME_TO_REPLACE, projectName);
    String msgContent = bundle.getString(KRASH_MSG_CONTENT_KEY);
    msgContent = StringUtils.replace(msgContent, PROJECT_NAME_TO_REPLACE, projectName);
    msgContent =
        StringUtils.replace(
            msgContent, PROJECT_URL_TO_REPLACE, buildContractUrl(act.getContract()));
    LOGGER.info("krash email sent to [" + emailTo + "]" + " on audit n° " + act.getAudit().getId());
    sendEmail(emailFrom, emailToSet, msgSubject, msgContent);
  }
 /**
  * Send an email when an audit terminates
  *
  * @param act
  * @param locale
  * @param exception
  */
 private void sendAuditResultEmail(Act act, Locale locale) {
   String emailTo = act.getContract().getUser().getEmail1();
   if (this.emailSentToUserExclusionList.contains(emailTo)) {
     LOGGER.info("Email not set cause user " + emailTo + " belongs to " + "exlusion list");
     return;
   }
   ResourceBundle bundle = ResourceBundle.getBundle(BUNDLE_NAME, locale);
   String emailFrom = bundle.getString(RECIPIENT_KEY);
   Set<String> emailToSet = new HashSet<>();
   emailToSet.add(emailTo);
   if (act.getStatus().equals(ActStatus.COMPLETED)) {
     sendSuccessfulMessageOnActTerminated(
         act, bundle, emailFrom, emailToSet, getProjectNameFromAct(act));
   } else if (act.getStatus().equals(ActStatus.ERROR)) {
     sendFailureMessageOnActTerminated(
         act, bundle, emailFrom, emailToSet, getProjectNameFromAct(act));
   }
 }