Get-DbaDbMailLog
View SourceSynopsis
Retrieves Database Mail event logs from msdb for troubleshooting email delivery issues
Description
Retrieves Database Mail event logs from the msdb.dbo.sysmail_event_log table, providing detailed information about email send attempts, failures, and system events. This function is essential for diagnosing Database Mail problems, monitoring email delivery status, and identifying configuration issues. You can filter results by date range and event type (Error, Warning, Success, Information, Internal) to focus on specific troubleshooting scenarios rather than manually querying the mail log tables.
Syntax
Get-DbaDbMailLog
[[-SqlInstance] <DbaInstanceParameter[]>]
[[-SqlCredential] <PSCredential>]
[[-Since] <DateTime>]
[[-Type] <String[]>]
[-EnableException]
[<CommonParameters>]
Examples
Example: 1
PS C:\> Get-DbaDbMailLog -SqlInstance sql01\sharepoint
Returns the entire DBMail log on sql01\sharepoint
Example: 2
PS C:\> Get-DbaDbMailLog -SqlInstance sql01\sharepoint | Select-Object *
Returns the entire DBMail log on sql01\sharepoint, includes all returned information.
Example: 3
PS C:\> $servers = "sql2014","sql2016", "sqlcluster\sharepoint"
PS C:\> $servers | Get-DbaDbMailLog -Type Error, Information
Returns only the Error and Information DBMail log for “sql2014”,“sql2016” and “sqlcluster\sharepoint”
Optional Parameters
-SqlInstance
The target SQL Server instance or instances.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | true (ByValue) |
| Default Value |
-SqlCredential
Login to the target instance using alternative credentials. Accepts PowerShell credentials (Get-Credential).
Windows Authentication, SQL Server Authentication, Active Directory - Password, and Active Directory - Integrated are all supported.
For MFA support, please use Connect-DbaInstance.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value |
-Since
Filters log entries to only include events that occurred on or after the specified date and time.
Use this when troubleshooting recent mail delivery issues or investigating problems within a specific timeframe.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value |
-Type
Filters log entries by event type to focus troubleshooting on specific mail system behaviors.
Use ‘Error’ to identify failed deliveries, ‘Warning’ for potential issues, ‘Success’ to verify deliveries, ‘Information’ for general events, or ‘Internal’ for system-level Database Mail operations.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value | |
| Accepted Values | Error,Warning,Success,Information,Internal |
-EnableException
By default, when something goes wrong we try to catch it, interpret it and give you a friendly warning message.
This avoids overwhelming you with “sea of red” exceptions, but is inconvenient because it basically disables advanced scripting.
Using this switch turns this “nice by default” feature off and enables you to catch exceptions with your own try/catch.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value | False |
Outputs
PSCustomObject
Returns one object per log entry in the Database Mail event log.
Default display properties (via Select-DefaultView):
- ComputerName: The name of the computer hosting the SQL Server instance
- InstanceName: The name of the SQL Server instance
- SqlInstance: The full SQL Server instance name (computer\instance)
- LogDate: DateTime when the event was logged
- EventType: The type of event (Error, Warning, Success, Information, or Internal)
- Description: Detailed description of the event or error message
- Login: The user who last modified this log entry
*Additional properties available (accessible via Select-Object ):
- LogId: Unique identifier for the log entry (integer)
- ProcessId: Process ID associated with the event (integer)
- MailItemId: Identifier of the mail item, if applicable (integer)
- AccountId: Identifier of the Database Mail account (integer)
- LastModDate: DateTime when the log entry was last modified
- LastModUser: The user who last modified the log entry All properties are accessible even though only default properties are displayed without using Select-Object *.
dbatools