using DnsClient; using System.Collections.Generic; using System.Linq; using System.Net; namespace Masuit.Tools.Models; public class EmailAddress { public string Username { get; set; } public string Domain { get; set; } public List SmtpServers { get { var nslookup = new LookupClient(); var query = nslookup.Query(Domain, QueryType.MX).Answers.MxRecords().SelectMany(r => Dns.GetHostAddresses(r.Exchange.Value)).ToList(); return query.FindAll(ip => !ip.IsPrivateIP()); } } public EmailAddress(string email) { var parts = email.Split('@'); Username = parts[0]; Domain = parts[1]; } /// /// /// /// /// public static implicit operator EmailAddress(string email) { return new EmailAddress(email); } /// /// /// /// public static implicit operator string(EmailAddress email) { return email.ToString(); } /// Returns a string that represents the current object. /// A string that represents the current object. public override string ToString() { return Username + "@" + Domain; } }