Sends an e-mail message.
Syntax
Send-MailMessage [-To] <string[]> [-Subject] <string> -From <string> [[-Body] <string>] [[-SmtpServer] <string>] [-Attachments <string[]>] [-Bcc <string[]>] [-BodyAsHtml] [-Cc <string[]>] [-Credential <PSCredential>] [-DeliveryNotificationOption {<None> | <OnSuccess> | <OnFailure> | <Delay> | <Never>}] [-Encoding <Encoding>] [-Priority {<Normal> | <Low> | <High>}] [-UseSsl] [<CommonParameters>]
Description
The Send-MailMessage cmdlet sends an e-mail message from within Windows PowerShell.
Parameters
-Attachments <string[]>
Specifies the path and file names of files to be attached to the e-mail message. You can use this parameter or pipe the paths and file names to Send-MailMessage.
Required? |
false |
Position? |
named |
Default Value |
none |
Accept Pipeline Input? |
true (ByValue) |
Accept Wildcard Characters? |
false |
-Bcc <string[]>
Specifies the e-mail addresses that receive a copy of the mail but are not listed as recipients of the message. Enter names (optional) and the e-mail address, such as "Name <someone@example.com>".
Required? |
false |
Position? |
named |
Default Value |
None |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-Body <string>
Specifies the body (content) of the e-mail message.
Required? |
false |
Position? |
3 |
Default Value |
None |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-BodyAsHtml
Indicates that the value of the Body parameter contains HTML.
Required? |
false |
Position? |
named |
Default Value |
False |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-Cc <string[]>
Specifies the e-mail addresses to which a carbon copy (CC) of the e-mail message is sent. Enter names (optional) and the e-mail address, such as "Name <someone@example.com>".
Required? |
false |
Position? |
named |
Default Value |
None |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-Credential <PSCredential>
Specifies a user account that has permission to perform this action. The default is the current user.
Type a user name, such as "User01" or "Domain01\User01". Or, enter a PSCredential object, such as one from the Get-Credential cmdlet.
Required? |
false |
Position? |
named |
Default Value |
Current user |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-DeliveryNotificationOption <DeliveryNotificationOptions>
Specifies the delivery notification options for the e-mail message. You can specify multiple values. "None" is the default value. The alias for this parameter is "dno".
The delivery notifications are sent in an e-mail message to the address specified in the value of the To parameter.
Valid values are:
-- None: No notification.
-- OnSuccess: Notify if the delivery is successful.
-- OnFailure: Notify if the delivery is unsuccessful.
-- Delay: Notify if the delivery is delayed.
-- Never: Never notify.
Required? |
false |
Position? |
named |
Default Value |
None |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-Encoding <Encoding>
Specifies the encoding used for the body and subject. Valid values are ASCII, UTF8, UTF7, UTF32, Unicode, BigEndianUnicode, Default, and OEM. ASCII is the default.
Required? |
false |
Position? |
named |
Default Value |
ASCII |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-From <string>
Specifies the address from which the mail is sent. Enter a name (optional) and e-mail address, such as "Name <someone@example.com>". This parameter is required.
Required? |
true |
Position? |
named |
Default Value |
None |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-Priority <MailPriority>
Specifies the priority of the e-mail message. The valid values for this are Normal, High, and Low. Normal is the default.
Required? |
false |
Position? |
named |
Default Value |
Normal. |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-SmtpServer <string>
Specifies the name of the SMTP server that sends the e-mail message.
The default value is the value of the $PSEmailServer preference variable. If the preference variable is not set and this parameter is omitted, the command fails.
Required? |
false |
Position? |
4 |
Default Value |
$PSEmailServer |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-Subject <string>
Specifies the subject of the e-mail message. This parameter is required.
Required? |
true |
Position? |
2 |
Default Value |
None |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-To <string[]>
Specifies the addresses to which the mail is sent. Enter names (optional) and the e-mail address, such as "Name <someone@example.com>". This parameter is required.
Required? |
true |
Position? |
1 |
Default Value |
None |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
-UseSsl
Uses the Secure Sockets Layer (SSL) protocol to establish a connection to the remote computer to send mail. By default, SSL is not used.
Required? |
false |
Position? |
named |
Default Value |
False |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
false |
<CommonParameters>
This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see about_CommonParameters.
Inputs and Outputs
The input type is the type of the objects that you can pipe to the cmdlet. The return type is the type of the objects that the cmdlet returns.
Inputs |
System.String You can pipe the path and file names of attachments to Send-MailMessage. |
Outputs |
None This cmdlet does not generate any output. |
Example 1
C:\PS>send-mailmessage -to "User01 <user01@example.com>" -from "User02 <user02@example.com>" -subject "Test mail" This command sends an e-mail message from User01 to User02. The mail message has a subject, which is required, but it does not have a body, which is optional. Also, because the SmtpServer parameter is not specified, Send-MailMessage uses the value of the $PSEmailServer preference variable for the SMTP server.
Example 2
C:\PS>send-mailmessage -from "User01 <user01@example.com>" -to "User02 <user02@example.com>", "User03 <user03@example.com>" -subject "Sending the Attachment" -body "Forgot to send the attachment. Sending now." -Attachment "data.csv" -priority High -dno onSuccess, onFailure -smtpServer smtp.fabrikam.com This command sends an e-mail message with an attachment from User01 to two other users. It specifies a priority value of "High" and requests a delivery notification by e-mail when the e-mail messages are delivered or when they fail.
Example 3
C:\PS>send-mailmessage -to "User01 <user01@example.com>" -from "ITGroup <itdept@example.com>" -cc "User02 <user02@example.com>" -bcc ITMgr <itmgr@example.com> -subject "Don't forget today's meeting!" -credential domain01\admin01 -useSSL This command sends an e-mail message from User01 to the ITGroup mailing list with a copy (CC) to User02 and a blind carbon copy (BCC) to the IT manager (ITMgr). The command uses the credentials of a domain administrator and the UseSSL parameter.