diff --git a/src/Microsoft.PowerShell.Commands.Utility/commands/utility/Send-MailMessage.cs b/src/Microsoft.PowerShell.Commands.Utility/commands/utility/Send-MailMessage.cs
index 506715eb5bf..96689806ba6 100644
--- a/src/Microsoft.PowerShell.Commands.Utility/commands/utility/Send-MailMessage.cs
+++ b/src/Microsoft.PowerShell.Commands.Utility/commands/utility/Send-MailMessage.cs
@@ -117,9 +117,8 @@ public sealed class SendMailMessage : PSCmdlet
///
/// Gets or sets the subject of the email message.
///
- [Parameter(Mandatory = true, Position = 1, ValueFromPipelineByPropertyName = true)]
+ [Parameter(Mandatory = false, Position = 1, ValueFromPipelineByPropertyName = true)]
[Alias("sub")]
- [ValidateNotNullOrEmpty]
public string Subject { get; set; }
///
diff --git a/test/powershell/Modules/Microsoft.PowerShell.Utility/Send-MailMessage.Tests.ps1 b/test/powershell/Modules/Microsoft.PowerShell.Utility/Send-MailMessage.Tests.ps1
index f9962008966..ef851fab56d 100644
--- a/test/powershell/Modules/Microsoft.PowerShell.Utility/Send-MailMessage.Tests.ps1
+++ b/test/powershell/Modules/Microsoft.PowerShell.Utility/Send-MailMessage.Tests.ps1
@@ -61,6 +61,16 @@ Describe "Send-MailMessage" -Tags CI, RequireSudoOnUnix {
SmtpServer = "127.0.0.1"
}
}
+ @{
+ Name = "with No Subject"
+ InputObject = @{
+ From = "user01@example.com"
+ To = "user02@example.com"
+ ReplyTo = "noreply@example.com"
+ Body = "Body $(Get-Date)"
+ SmtpServer = "127.0.0.1"
+ }
+ }
)
It "Can send mail message using named parameters " -TestCases $testCases {
@@ -78,7 +88,9 @@ Describe "Send-MailMessage" -Tags CI, RequireSudoOnUnix {
$mail.Headers["From"] | Should -BeExactly $InputObject.From
$mail.Headers["To"] | Should -BeExactly $InputObject.To
$mail.Headers["Reply-To"] | Should -BeExactly $InputObject.ReplyTo
- $mail.Headers["Subject"] | Should -BeExactly $InputObject.Subject
+ If ($InputObject.Subject -ne $null) {
+ $mail.Headers["Subject"] | Should -BeExactly $InputObject.Subject
+ }
$mail.MessageParts.Count | Should -BeExactly 1
$mail.MessageParts[0].BodyData | Should -BeExactly $InputObject.Body
@@ -101,7 +113,9 @@ Describe "Send-MailMessage" -Tags CI, RequireSudoOnUnix {
$mail.Headers["From"] | Should -BeExactly $InputObject.From
$mail.Headers["To"] | Should -BeExactly $InputObject.To
$mail.Headers["Reply-To"] | Should -BeExactly $InputObject.ReplyTo
- $mail.Headers["Subject"] | Should -BeExactly $InputObject.Subject
+ If ($InputObject.Subject -ne $null) {
+ $mail.Headers["Subject"] | Should -BeExactly $InputObject.Subject
+ }
$mail.MessageParts.Count | Should -BeExactly 1
$mail.MessageParts[0].BodyData | Should -BeExactly $InputObject.Body