共用方式為


Send-MailMessage

傳送電子郵件訊息。

Syntax

Send-MailMessage
    [-Attachments <String[]>]
    [-Bcc <String[]>]
    [[-Body] <String>]
    [-BodyAsHtml]
    [-Encoding <Encoding>]
    [-Cc <String[]>]
    [-DeliveryNotificationOption <DeliveryNotificationOptions>]
    -From <String>
    [[-SmtpServer] <String>]
    [-Priority <MailPriority>]
    [-ReplyTo <String[]>]
    [-Subject] <String>
    [-To] <String[]>
    [-Credential <PSCredential>]
    [-UseSsl]
    [-Port <Int32>]
    [<CommonParameters>]

Description

Cmdlet 會 Send-MailMessage 從PowerShell內傳送電子郵件訊息。

您必須指定簡單郵件傳輸通訊協定 (SMTP) 伺服器或 Send-MailMessage 命令失敗。 使用 SmtpServer 參數,或將 $PSEmailServer 變數設定為有效的 SMTP 伺服器。 指派給 $PSEmailServer 的值是PowerShell的預設SMTP設定。 如需詳細資訊,請參閱 about_Preference_Variables

警告

Send-MailMessage Cmdlet 已過時。 此 Cmdlet 不保證與 SMTP 伺服器的安全連線。 雖然 PowerShell 中沒有立即可用的取代,但建議您不要使用 Send-MailMessage。 如需詳細資訊,請參閱 平臺相容性附註 DE0005

範例

範例 1:從一個人傳送電子郵件給另一個人

本範例會將電子郵件訊息從一個人傳送給另一個人。

需要 Send-MailMessageFromToSubject 參數。 此範例使用 SMTP 伺服器的預設 $PSEmailServer 變數,因此不需要 SmtpServer 參數。

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>' -Subject 'Test mail'

Cmdlet Send-MailMessage 會使用 From 參數來指定訊息的寄件者。 To 參數會指定郵件的收件者。 Subject 參數會使用文字字串 Test mail 做為訊息,因為不包含選擇性的 Body 參數。

範例 2:傳送附件

本範例會傳送含有附件的電子郵件訊息。

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>', 'User03 <user03@fabrikam.com>' -Subject 'Sending the Attachment' -Body "Forgot to send the attachment. Sending now." -Attachments .\data.csv -Priority High -DeliveryNotificationOption OnSuccess, OnFailure -SmtpServer 'smtp.fabrikam.com'

Cmdlet Send-MailMessage 會使用 From 參數來指定訊息的寄件者。 To 參數會指定郵件的收件者。 Subject 參數描述訊息的內容。 Body 參數是訊息的內容。

Attachments 參數會指定目前目錄中附加至電子郵件訊息的檔案。 Priority 參數會將訊息設定為優先順序。 -DeliveryNotificationOption 参數指定兩個值 OnSuccessOnFailure。 寄件者會收到電子郵件通知,以確認郵件傳遞成功或失敗。 SmtpServer 參數會將 SMTP 伺服器設定為 smtp.fabrikam.com

範例 3:將電子郵件傳送至郵件清單

本範例會將電子郵件訊息傳送至郵件清單。

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'ITGroup <itdept@fabrikam.com>' -Cc 'User02 <user02@fabrikam.com>' -Bcc 'ITMgr <itmgr@fabrikam.com>' -Subject "Don't forget today's meeting!" -Credential domain01\admin01 -UseSsl

Cmdlet Send-MailMessage 會使用 From 參數來指定訊息的寄件者。 To 參數會指定郵件的收件者。 Cc 參數會將郵件的復本傳送給指定的收件者。 Bcc 參數會傳送訊息的盲目複本。 盲目複製是從其他收件者隱藏的電子郵件位址。 Subject 參數是訊息,因為不包含選擇性 Body 參數。

Credential 參數會指定網域系統管理員的認證用來傳送訊息。 UseSsl 參數會指定安全套接字層 (SSL) 建立安全連線。

參數

-Attachments

指定要附加至電子郵件訊息之檔案的路徑和檔名。 您可以使用此參數,或使用管線將路徑和檔案名傳送至 Send-MailMessage

Type:String[]
Aliases:PsPath
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Bcc

指定接收郵件復本但未列為郵件收件者的電子郵件位址。 輸入名稱 (選擇性) 和電子郵件位址,例如 Name <someone@fabrikam.com>

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Body

指定電子郵件訊息的內容。

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-BodyAsHtml

指定 Body 參數的值包含 HTML。

Type:SwitchParameter
Aliases:BAH
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Cc

指定傳送電子郵件訊息之副本 (CC) 的電子郵件位址。 輸入名稱 (選擇性) 和電子郵件位址,例如 Name <someone@fabrikam.com>

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

指定具有執行此動作權限的使用者帳戶。 預設為目前使用者。

輸入用戶名稱,例如 User01Domain01\User01。 或者,輸入 PSCredential 物件,例如 Cmdlet 中的 Get-Credential 一個物件。

認證會儲存在 PSCredential 物件中,密碼會儲存為 SecureString

注意

如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DeliveryNotificationOption

指定電子郵件訊息的傳遞通知選項。 您可以指定多個值。 預設值為 None。 此參數的別名為 DNO

傳遞通知會傳送至 From 參數中的位址。

此參數可接受的值如下所示:

  • None:沒有通知。
  • OnSuccess:如果傳遞成功,請通知。
  • OnFailure:如果傳遞失敗,請通知。
  • Delay:通知傳遞是否延遲。
  • Never:永不通知。
Type:DeliveryNotificationOptions
Aliases:DNO
Accepted values:None, OnSuccess, OnFailure, Delay, Never
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Encoding

指定目標檔案的編碼類型。 預設值是 utf8NoBOM

此參數可接受的值如下所示:

  • ascii:使用 ASCII (7 位) 字元集的編碼方式。
  • bigendianunicode:使用大位元組位元組順序以UTF-16格式編碼。
  • oem:使用 MS-DOS 和控制台程式的預設編碼方式。
  • unicode:使用小位元節順序以UTF-16格式編碼。
  • utf7:以 UTF-7 格式編碼。
  • utf8:以 UTF-8 格式編碼。
  • utf8BOM:使用位元節順序標記 (BOM) ,以 UTF-8 格式編碼
  • utf8NoBOM:以 UTF-8 格式編碼,不含位元組順序標記 (BOM)
  • utf32:以 UTF-32 格式編碼。

從 PowerShell 6.2 開始, Encoding 參數也允許已註冊代碼頁的數值標識符, (例如 -Encoding 1251) 或已註冊代碼頁的字串名稱 (,例如 -Encoding "windows-1251") 。 如需詳細資訊,請參閱 Encoding.CodePage 的 .NET 檔。

Type:Encoding
Aliases:BE
Accepted values:ASCII, BigEndianUnicode, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-From

需要 From 參數。 此參數會指定寄件者的電子郵件位址。 輸入名稱 (選擇性) 和電子郵件位址,例如 Name <someone@fabrikam.com>

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Port

指定 SMTP 伺服器上的替代連接埠。 預設值為 25,這是預設的 SMTP 連接埠。

Type:Int32
Position:Named
Default value:25
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Priority

指定電子郵件訊息的優先順序。 預設值為 Normal。 此參數可接受的值為 Normal、High 和 Low。

Type:MailPriority
Accepted values:Normal, High, Low
Position:Named
Default value:Normal
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ReplyTo

指定 [寄件者 (位址] 以外的其他電子郵件地址) 用來回復此郵件。 輸入名稱 (選擇性) 和電子郵件位址,例如 Name <someone@fabrikam.com>

此參數是在 PowerShell 6.2 中引進的。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SmtpServer

指定傳送電子郵件訊息的 SMTP 伺服器名稱。

預設值是喜好設定變數的值 $PSEmailServer 。 如果未設定喜好設定變數,而且未使用此參數,命令就會 Send-MailMessage 失敗。

Type:String
Aliases:ComputerName
Position:3
Default value:$PSEmailServer
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Subject

需要 Subject 參數。 此參數會指定電子郵件訊息的主旨。

Type:String
Aliases:sub
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-To

需要 To 參數。 此參數會指定收件者的電子郵件位址。 如果有多個收件者,請使用逗號分隔其位址 () , 。 輸入名稱 (選擇性) 和電子郵件位址,例如 Name <someone@fabrikam.com>

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-UseSsl

安全套接字層 (SSL) 通訊協定可用來建立與遠端電腦的安全連線來傳送郵件。 預設不會使用 SSL。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

輸入

String

您可以使用管線將附件的路徑與檔案名傳送至 Send-MailMessage

輸出

None

此 Cmdlet 不會產生任何輸出。