Chiunque ha uno script Powershell per cercare il record MX per un dominio?

Voglio verificare se gli indirizzi e-mail nel mio sistema di gestione dei contatti sono validi e il modo migliore per pensare di farlo è quello di get il record MX per il loro dominio, quindi aprire una connessione SMTP e vedere se il server remoto accetta la indirizzo email come valido "TO".

  • Nel command telnet non è ansible autenticare sendmail in ubuntu
  • PowerShell: Copy-GPO fallito con HRESULT: 0x8007000D
  • Il modo più semplice per submit un'e-mail di prova da un server, per testare le impostazioni?
  • Le versioni di Microsoft Exchange Server supportno RFC 5336/6531 (nomi della cassetta postale internazionalizzata)?
  • Come posso analizzare una condivisione SMB per l'accesso non crittografato?
  • Installare .NET 4.6.1 in remoto tramite powershell
  • L'indirizzo IP non è autorizzato a submit posta da DOMAIN
  • Mancano i rimbalzi dalle e-mail generati dal web
  • Limitare dynamicmente la dimensione dell'attaccamento postfix
  • motivo: 403 4.7.0 La stretta di mano di TLS non è rioutput
  • Dove viene inviato il rimbalzo di posta elettronica? Al dominio @ o all'IP che lo ha inviato?
  • Impostare l'indirizzo rimbalzo usando il postfix
  • 4 Solutions collect form web for “Chiunque ha uno script Powershell per cercare il record MX per un dominio?”

    Date un'occhiata al Powershell Dig Cmdlet .

    Utilizzando questo puoi farlo:

    PS> $allRecords = Get-Dns -Name mydomain.com -Type MX PS> write-host $allRecords.RecordsMX 

    $allRecords è di tipo PoshNet.Dns.Response in modo da poter leggere le properties; su di esso per get i tuoi record.

    Qualcosa di più bello di questo cmdlet è che puoi farlo restituire più tipi di record in una singola query.

     function Get-DnsAddressList { param( [parameter(Mandatory=$true)][Alias("Host")] [string]$HostName) try { return [System.Net.Dns]::GetHostEntry($HostName).AddressList } catch [System.Net.Sockets.SocketException] { if ($_.Exception.ErrorCode -ne 11001) { throw $_ } return = @() } } function Get-DnsMXQuery { param( [parameter(Mandatory=$true)] [string]$DomainName) if (-not $Script:global_dnsquery) { $Private:SourceCS = @' using System; using System.Collections.Generic; using System.ComponentModel; using System.Runtime.InteropServices; namespace PM.Dns { public class MXQuery { [DllImport("dnsapi", EntryPoint="DnsQuery_W", CharSet=CharSet.Unicode, SetLastError=true, ExactSpelling=true)] private static extern int DnsQuery( [MarshalAs(UnmanagedType.VBByRefStr)] ref string pszName, ushort wType, uint options, IntPtr aipServers, ref IntPtr ppQueryResults, IntPtr pReserved); [DllImport("dnsapi", CharSet=CharSet.Auto, SetLastError=true)] private static extern void DnsRecordListFree(IntPtr pRecordList, int FreeType); public static string[] Resolve(string domain) { if (Environment.OSVersion.Platform != PlatformID.Win32NT) throw new NotSupportedException(); List<string> list = new List<string>(); IntPtr ptr1 = IntPtr.Zero; IntPtr ptr2 = IntPtr.Zero; int num1 = DnsQuery(ref domain, 15, 0, IntPtr.Zero, ref ptr1, IntPtr.Zero); if (num1 != 0) throw new Win32Exception(num1); try { MXRecord recMx; for (ptr2 = ptr1; !ptr2.Equals(IntPtr.Zero); ptr2 = recMx.pNext) { recMx = (MXRecord)Marshal.PtrToStructure(ptr2, typeof(MXRecord)); if (recMx.wType == 15) list.Add(Marshal.PtrToStringAuto(recMx.pNameExchange)); } } finally { DnsRecordListFree(ptr1, 0); } return list.ToArray(); } [StructLayout(LayoutKind.Sequential)] private struct MXRecord { public IntPtr pNext; public string pName; public short wType; public short wDataLength; public int flags; public int dwTtl; public int dwReserved; public IntPtr pNameExchange; public short wPreference; public short Pad; } } } '@ Add-Type -TypeDefinition $Private:SourceCS -ErrorAction Stop $Script:global_dnsquery = $true } [PM.Dns.MXQuery]::Resolve($DomainName) | % { $rec = New-Object PSObject Add-Member -InputObject $rec -MemberType NoteProperty -Name "Host" -Value $_ Add-Member -InputObject $rec -MemberType NoteProperty -Name "AddressList" -Value $(Get-DnsAddressList $_) $rec } } Get-DnsMXQuery -DomainName "gmail.com" 

    Get-WmiObject -Class MicrosoftDNS_MXType -Names root \ microsoftdns -ComputerName DC1 -Filter "DomainName = 'domain.com.'"

    Su Server 2012 / Windows 8 e sopra è ansible utilizzare Risolve-DnsName :

    Resolve-DnsName -Name mydomain.com -Type MX

    Source Utilizzare PowerShell per verificare rapidamente più record MX .

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.