selectMXServerAddress method

InternetAddress selectMXServerAddress(
  1. List<MXRecord> mxRecords
)

Implementation

InternetAddress selectMXServerAddress(List<MXRecord> mxRecords) {
  if (mxRecords.isEmpty) {
    throw ArgumentError('MX records list cannot be empty');
  }

  mxRecords.sort();

  // Find the lowest preference value
  final lowestPref = mxRecords.first.preference;

  // Filter MX records with the lowest preference
  final bestServers = mxRecords
      .where((r) => r.preference == lowestPref)
      .toList();

  // Randomly select one for load balancing
  final selected = bestServers[Random().nextInt(bestServers.length)];

  return selected.address;
}