private String getAccountIdFromAccountDirectory(File accountDirectory) throws Exception {
    FileSet packetBucketDirectories = getAllPacketBucketDirectories(accountDirectory);

    for (File packetBucketDirectory : packetBucketDirectories) {
      FileSet headerPackets = getFiles(packetBucketDirectory, getHeaderPacketFilter());
      if (headerPackets.size() > 0) {
        File firstHeaderPacket = headerPackets.iterator().next();
        String accountId = extractAccountId(firstHeaderPacket);
        return accountId;
      }
    }

    MartusLogger.logWarning("No packets in " + accountDirectory.getAbsolutePath());
    return null;
  }
  public void loadFrom(File emailNotificationsFile) throws Exception {
    if (!emailNotificationsFile.exists()) {
      MartusLogger.logWarning("Missing: " + emailNotificationsFile);
      return;
    }

    UnicodeReader reader = new UnicodeReader(emailNotificationsFile);
    try {
      String line = reader.readLine();
      while (line != null) {
        processLine(line);
        line = reader.readLine();
      }
    } finally {
      reader.close();
    }

    MartusLogger.log("Will send email notifications to " + recipientWithHosts.toString());
  }