# Get-MailAuthenticationRecord

Obtains and converts the mail authentication records of a domain

Source: https://maester.dev/docs/commands/Get-MailAuthenticationRecord

## SYNOPSIS

Obtains and converts the mail authentication records of a domain

## SYNTAX

```powershell
Get-MailAuthenticationRecord [-DomainName] <String> [[-DnsServerIpAddress] <IPAddress>]
 [[-DkimDnsName] <String>] [[-Records] <String[]>] [-QuickTimeout] [-NoHostsFile]
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## DESCRIPTION

Adapted from:
- https://cloudbrothers.info/en/powershell-tip-resolve-spf/
- https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/Modules/Providers/ExportEXOProvider.psm1
- https://xkln.net/blog/getting-mx-spf-dmarc-dkim-and-smtp-banners-with-powershell/
- SPF https://datatracker.ietf.org/doc/html/rfc7208
- DMARC https://datatracker.ietf.org/doc/html/rfc7489
- DKIM https://datatracker.ietf.org/doc/html/rfc6376

## EXAMPLES

### EXAMPLE 1

```powershell
Get-MailAuthenticationRecord -DomainName "microsoft.com"
```

Returns an object containing the structured mail authentication objects

## PARAMETERS

### -DomainName

Domain name to check.

```yaml
Type: String
Parameter Sets: (All)
Aliases:

Required: True
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -DnsServerIpAddress

DNS-server to use for lookup.

```yaml
Type: IPAddress
Parameter Sets: (All)
Aliases:

Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -DkimDnsName

DKIM DNS record Name to retrieve.

```yaml
Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -Records

Specify which records should be retrieved.
Accepted values are 'All', 'DKIM', 'DMARC', 'MX' and/or 'SPF'.

```yaml
Type: String[]
Parameter Sets: (All)
Aliases:

Required: False
Position: 4
Default value: All
Accept pipeline input: False
Accept wildcard characters: False
```

### -QuickTimeout

Use a shorter timeout value for the DNS lookup.

```yaml
Type: SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
```

### -NoHostsFile

Ignore hosts file for domain lookup.

```yaml
Type: SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
```

### -ProgressAction

Determines how PowerShell responds to progress updates generated by a script, cmdlet, or provider, such as the progress bars generated by Write-Progress.

```yaml
Type: ActionPreference
Parameter Sets: (All)
Aliases: proga

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).

## INPUTS

## OUTPUTS

### System.Management.Automation.PSObject

## NOTES

## RELATED LINKS

[https://maester.dev/docs/commands/Get-MailAuthenticationRecord](https://maester.dev/docs/commands/Get-MailAuthenticationRecord)
