// при параметре nID_Subject != null
  private SubjectContact syncMail(String sMail, Long nID_Subject) {

    Subject subject = subjectDao.getSubject(nID_Subject);
    SubjectHuman subjectHuman = null;
    try {
      subjectHuman = subjectHumanDao.findByExpected("oSubject", subject);
    } catch (Exception e) {
      LOG.error(e.getMessage(), e);
    }

    List<SubjectContact> subjectContacts = subjectContactDao.findContacts(subject);

    SubjectContact res = null;

    for (SubjectContact subjectContact : subjectContacts) {
      SubjectContactType sct = subjectContact.getSubjectContactType();
      if (sct.getsName_EN().equals("Email")) {
        if (subjectContact.getsValue().equals(sMail)) {
          res = subjectContact;
          res.setSubject(subject);
          res.setsDate();
          subjectContactDao.saveOrUpdate(res);
          break;
        }
      }
    }

    if (res == null) {
      res = new SubjectContact();
      SubjectContactType subjectContactType = subjectContactTypeDao.getEmailType();
      res.setSubject(subject);
      res.setSubjectContactType(subjectContactType);
      res.setsValue(sMail);
      res.setsDate();
      subjectContactDao.saveOrUpdate(res);
      if (subjectHuman != null) {
        subjectHuman.setDefaultEmail(res);
        // subjectHuman.setSubjectHumanIdType(SubjectHumanIdType.Email);
        subjectHumanDao.saveOrUpdateHuman(subjectHuman);
      }
    }

    return res;
  }