Send-MailMessage
傳送電子郵件訊息。
語法
All
Send-MailMessage
[[-Body] <String>]
[[-SmtpServer] <String>]
[[-Subject] <String>]
[-To] <String[]>
-From <String>
[-Attachments <String[]>]
[-Bcc <String[]>]
[-BodyAsHtml]
[-Encoding <Encoding>]
[-Cc <String[]>]
[-DeliveryNotificationOption <DeliveryNotificationOptions>]
[-Priority <MailPriority>]
[-ReplyTo <String[]>]
[-Credential <PSCredential>]
[-UseSsl]
[-Port <Int32>]
[<CommonParameters>]
Description
Send-MailMessage Cmdlet 會從 PowerShell 內傳送電子郵件訊息。
您必須指定簡單郵件傳輸通訊協定 (SMTP) 伺服器或 Send-MailMessage 命令失敗。 使用 SmtpServer 參數,或將 $PSEmailServer 變數設定為有效的 SMTP 伺服器。
指派給 $PSEmailServer 的值是 PowerShell 的預設 SMTP 設定。 如需詳細資訊,請參閱 about_Preference_Variables。
警告
Send-MailMessage Cmdlet 已過時。 此 Cmdlet 不保證與 SMTP 伺服器的安全連線。 雖然 PowerShell 中沒有立即可用的取代專案,但建議您不要使用 Send-MailMessage。 如需詳細資訊,請參閱 平臺相容性注意事項 DE0005。
範例
範例 1:將電子郵件從一個人傳送到另一個人
本範例會將電子郵件訊息從一個人傳送到另一個人。
$PSEmailServer 變數,因此不需要 SmtpServer 參數。
$sendMailMessageSplat = @{
From = 'User01 <user01@fabrikam.com>'
To = 'User02 <user02@fabrikam.com>'
Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplat
Send-MailMessage Cmdlet 會使用 From 參數來指定訊息的寄件者。
To 參數會指定郵件的收件者。
Subject 參數會使用文字字串 Test mail 做為訊息,因為不包含選擇性的 Body 參數。
範例 2:傳送附件
本範例會傳送含有附件的電子郵件訊息。
$sendMailMessageSplat = @{
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'
}
Send-MailMessage @sendMailMessageSplat
Send-MailMessage Cmdlet 會使用 From 參數來指定訊息的寄件者。
To 參數會指定郵件的收件者。
Subject 參數描述訊息的內容。
Body 參數是訊息的內容。
Attachments 參數會指定目前目錄中附加至電子郵件訊息的檔案。
Priority 參數會將訊息設定為 High 優先順序。
DeliveryNotificationOption 參數會指定兩個值,OnSuccess 和 OnFailure。 寄件者會收到電子郵件通知,以確認郵件傳遞成功或失敗。
SmtpServer 參數會將 SMTP 伺服器設定為 smtp.fabrikam.com。
範例 3:將電子郵件傳送至郵件清單
本範例會將電子郵件訊息傳送至郵件清單。
$sendMailMessageSplat = @{
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 = $true
}
Send-MailMessage @sendMailMessageSplat
Send-MailMessage Cmdlet 會使用 From 參數來指定訊息的寄件者。
To 參數會指定郵件的收件者。
Cc 參數會將郵件的複本傳送給指定的收件者。
密件抄送 參數會傳送訊息的盲目複本。 盲目的復本是隱藏自其他收件者的電子郵件位址。
Subject 參數是訊息,因為不包含選擇性的 Body 參數。
Credential 參數會指定網域系統管理員的認證用來傳送訊息。 UseSsl 參數會指定安全套接字層 (SSL) 會建立安全連線。
參數
-Attachments
指定要附加至電子郵件訊息之檔案的路徑和檔名。 您可以使用此參數,或使用管線將路徑和檔案名傳送至 Send-MailMessage。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | PsPath |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Bcc
指定接收郵件復本但未列為郵件收件者的電子郵件位址。 輸入名稱(選擇性)和電子郵件位址,例如 Name <someone@fabrikam.com>。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Body
指定電子郵件訊息的內容。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 2 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-BodyAsHtml
指定 Body 參數的值包含 HTML。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 呸 |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Cc
指定傳送電子郵件訊息之副本 (CC) 的電子郵件位址。 輸入名稱(選擇性)和電子郵件位址,例如 Name <someone@fabrikam.com>。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Credential
指定具有執行此動作許可權的用戶帳戶。 預設值為目前的使用者。
輸入使用者名稱,例如 User01 或 Domain01\User01。 或者,輸入 PSCredential 物件,例如 Get-Credential Cmdlet 中的一個。
認證會儲存在 PSCredential 物件中,密碼會儲存為 secureString 。
備註
如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?。
參數屬性
| 類型: | PSCredential |
| 預設值: | Current user |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-DeliveryNotificationOption
指定電子郵件訊息的傳遞通知選項。 您可以指定多個值。 None 是預設值。 此參數的別名 DNO。
傳遞通知會傳送至 From 參數中的位址。
此參數可接受的值如下:
-
None:沒有通知。 -
OnSuccess:如果傳遞成功,請通知。 -
OnFailure:通知傳遞是否失敗。 -
Delay:通知傳遞是否延遲。 -
Never:永不通知。
這些值會定義為旗標型列舉。 您可以將多個值結合在一起,以使用此參數來設定多個旗標。 這些值可以傳遞至 DeliveryNotification 參數做為值的陣列,或是這些值的逗號分隔字串。 Cmdlet 會使用二進位 OR 作業來合併值。 將值以陣列的形式傳遞是最簡單的選擇,還可以讓您在使用 Tab 鍵時自動完成值。
參數屬性
| 類型: | DeliveryNotificationOptions |
| 預設值: | None |
| 接受的值: | None, OnSuccess, OnFailure, Delay, Never |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | DNO |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Encoding
指定目標檔案的編碼類型。 預設值是 utf8NoBOM。
此參數可接受的值如下:
-
ascii:使用 ASCII (7 位) 字元集的編碼方式。 -
bigendianunicode:使用高位元組序以 UTF-16 格式編碼。 -
bigendianutf32:使用大端字節順序以 UTF-32 格式進行編碼。 -
oem:使用 MS-DOS 和控制台程序的預設編碼方式。 -
unicode:使用小端位元組順序,以UTF-16格式進行編碼。 -
utf7:以UTF-7格式編碼。 -
utf8:以UTF-8格式編碼。 -
utf8BOM:以 UTF-8 格式(含位元組順序標記 BOM)編碼 -
utf8NoBOM:以 UTF-8 格式編碼,不含位元組順序標記【BOM】 -
utf32:以UTF-32格式編碼。
從 PowerShell 6.2 開始,編碼 參數也允許已註冊代碼頁的數值識別元(例如 -Encoding 1251)或已註冊代碼頁的字串名稱(例如 -Encoding "windows-1251")。 如需詳細資訊,請參閱 Encoding.CodePage的 .NET 檔。
參數屬性
| 類型: | Encoding |
| 預設值: | ASCII |
| 接受的值: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | BE |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-From
需要 From 參數。 此參數會指定寄件者的電子郵件位址。 輸入名稱(選擇性)和電子郵件位址,例如 Name <someone@fabrikam.com>。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Port
指定 SMTP 伺服器上的替代埠。 默認值為 25,這是預設 SMTP 連接埠。
參數屬性
| 類型: | Int32 |
| 預設值: | 25 |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Priority
指定電子郵件訊息的優先順序。 一般是預設值。 此參數可接受的值為 Normal、High 和 Low。
參數屬性
| 類型: | MailPriority |
| 預設值: | Normal |
| 接受的值: | Normal, High, Low |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-ReplyTo
指定用來回覆此信件的其他電子郵件地址(非[來源位址] 。
輸入名稱(選擇性)和電子郵件位址,例如 Name <someone@fabrikam.com>。
此參數是在 PowerShell 6.2 中引進的。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-SmtpServer
指定傳送電子郵件訊息的 SMTP 伺服器名稱。
預設值是 $PSEmailServer 喜好設定變數的值。 如果未設定喜好設定變數,而且未使用此參數,則 Send-MailMessage 命令會失敗。
參數屬性
| 類型: | String |
| 預設值: | $PSEmailServer |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 電腦名稱 |
參數集
(All)
| Position: | 3 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Subject
不需要 Subject 參數。 此參數會指定電子郵件訊息的主旨。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 分支 |
參數集
(All)
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-To
需要 To 參數。 此參數會指定收件者的電子郵件位址。 輸入名稱(選擇性)和電子郵件位址,例如 Name <someone@fabrikam.com>。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-UseSsl
安全套接字層 (SSL) 通訊協定可用來建立與遠端電腦的安全連線,以傳送郵件。 根據預設,不會使用 SSL。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
String
您可以使用管線將附件的路徑和檔名傳送至此 Cmdlet。
輸出
None
此 Cmdlet 不會傳回任何輸出。
備註
Send-MailMessage Cmdlet 已過時。 如需詳細資訊,請參閱 平臺相容性注意事項 DE0005。 此 Cmdlet 不保證與 SMTP 伺服器的安全連線。
DE0005 建議使用第三方連結庫,MailKit。 如果您使用 Exchange Online,您可以從 Microsoft Graph PowerShell SDK 使用 Send-MgUserMail。