Gửi-MailMessage (Microsoft.PowerShell.Utility)
Send-MailMessage
- Mô-đun:
- Microsoft.PowerShell.Utility
Gửi một tin nhắn email.
Cú pháp
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>]Sự miêu tả
Lệnh ghép ngắn Send-MailMessage gửi thông báo email từ bên trong PowerShell.
Bạn phải chỉ định máy chủ Giao thức truyền thư đơn giản (SMTP) nếu không lệnh Send-MailMessage không thành công. Sử dụng tham số SmtpServer hoặc đặt biến $PSEmailServer thành máy chủ SMTP hợp lệ. Giá trị được gán cho $PSEmailServer là cài đặt SMTP mặc định cho PowerShell. Để biết thêm thông tin, hãy xem about_Preference_Variables.
Cảnh báo
Lệnh ghép ngắn Gửi-MailMessage đã lỗi thời. Lệnh ghép ngắn này không đảm bảo kết nối an toàn với máy chủ SMTP. Mặc dù không có giải pháp thay thế ngay lập tức trong PowerShell nhưng chúng tôi khuyên bạn không nên sử dụng Send-MailMessage. Để biết thêm thông tin, hãy xem ghi chú Tương thích nền tảng DE0005.
Ví dụ
Ví dụ 1: Gửi email từ người này sang người khác
Ví dụ này gửi tin nhắn email từ người này sang người khác.
Các thông số Từ, Tới và Chủ đề được yêu cầu bởi Send-MailMessage. Ví dụ này sử dụng biến $PSEmailServer mặc định cho máy chủ SMTP, vì vậy tham số SmtpServer là không cần thiết.
$sendMailMessageSplat = @{
From = 'User01 <user01@fabrikam.com>'
To = 'User02 <user02@fabrikam.com>'
Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplatLệnh ghép ngắn Send-MailMessage sử dụng tham số Từ để chỉ định người gửi thư. Tham số To chỉ định người nhận thư. Tham số Chủ đề sử dụng chuỗi văn bản Thư kiểm tra làm thư vì tham số Nội dung tùy chọn không được bao gồm.
Ví dụ 2: Gửi tệp đính kèm
Ví dụ này gửi một email có tệp đính kèm.
$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 @sendMailMessageSplatLệnh ghép ngắn Send-MailMessage sử dụng tham số Từ để chỉ định người gửi thư. Tham số To chỉ định người nhận thư. Tham số Chủ đề mô tả nội dung của tin nhắn. Tham số Nội dung là nội dung của tin nhắn.
Tham số Tệp đính kèm chỉ định tệp trong thư mục hiện tại được đính kèm với thư email. Tham số Ưu tiên đặt thông báo ở mức ưu tiên Cao. Tham số DeliveryNotificationOption chỉ định hai giá trị, OnSuccess và OnFailure. Người gửi sẽ nhận được thông báo qua email để xác nhận việc gửi tin nhắn thành công hay thất bại. Tham số SmtpServer đặt máy chủ SMTP thành smtp.fabrikam.com.
Ví dụ 3: Gửi email đến danh sách gửi thư
Ví dụ này gửi một thông điệp email đến một danh sách gửi thư.
$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 @sendMailMessageSplatLệnh ghép ngắn Send-MailMessage sử dụng tham số Từ để chỉ định người gửi thư. Tham số To chỉ định người nhận thư. Tham số Cc gửi bản sao của thư đến người nhận được chỉ định. Tham số Bcc gửi bản sao ẩn của tin nhắn. Bản sao ẩn là một địa chỉ email được ẩn khỏi những người nhận khác. Tham số Subject là thông báo vì tham số Nội dung tùy chọn không được bao gồm.
Tham số Thông tin xác thực chỉ định thông tin xác thực của quản trị viên miền được sử dụng để gửi thư. Tham số UseSsl chỉ định rằng Lớp cổng bảo mật (SSL) tạo kết nối an toàn.
Thông số
-Attachments
Chỉ định đường dẫn và tên tệp của tệp sẽ được đính kèm vào thư email. Bạn có thể sử dụng tham số này hoặc chuyển đường dẫn và tên tệp tới Gửi-MailMessage.
- Kiểu :
-
String[]
- Bí danh:
PsPath
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
None
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-Bcc
Chỉ định các địa chỉ email nhận bản sao của thư nhưng không được liệt kê là người nhận thư. Nhập tên (tùy chọn) và địa chỉ email, chẳng hạn như Tên
- Kiểu :
String[]
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
-
None
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-Body
Chỉ định nội dung của thông điệp email.
- Kiểu :
String
- Chức vụ:
2
- Giá trị mặc định:
None
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-BodyAsHtml
Chỉ định rằng giá trị của thông số Nội dung có chứa HTML.
- Kiểu :
SwitchParameter
- Bí danh:
BAH
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
None
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-Cc
Chỉ định địa chỉ email mà bản sao (CC) của email sẽ được gửi tới. Nhập tên (tùy chọn) và địa chỉ email, chẳng hạn như Tên
- Kiểu :
String[]
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
None
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-Credential
Chỉ định tài khoản người dùng có quyền thực hiện hành động này. Mặc định là người dùng hiện tại.
Nhập tên người dùng, chẳng hạn như User01 hoặc Domain01\User01. Hoặc nhập đối tượng PSCredential, chẳng hạn như đối tượng từ lệnh ghép ngắn Get-Credential.
Thông tin xác thực được lưu trữ trong đối tượng PSCredential và mật khẩu được lưu dưới dạng SecureString.
Ghi chú
Để biết thêm thông tin về bảo vệ dữ liệu SecureString, hãy xem SecureString an toàn đến mức nào?.
- Kiểu :
Thông tin xác thực PS
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
Người dùng hiện tại
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-DeliveryNotificationOption
Chỉ định các tùy chọn thông báo gửi cho email. Bạn có thể chỉ định nhiều giá trị. Không có giá trị mặc định. Bí danh cho tham số này là DNO.
Thông báo gửi được gửi đến địa chỉ trong tham số Từ.
Các giá trị được chấp nhận cho tham số này như sau:
Không: Không có thông báo.OnSuccess: Thông báo nếu quá trình gửi thành công.OnFailure: Thông báo nếu quá trình gửi không thành công.Trì hoãn: Thông báo nếu việc giao hàng bị trì hoãn.Không bao giờ: Không bao giờ thông báo.
Các giá trị này được định nghĩa là một bảng liệt kê dựa trên cờ. Bạn có thể kết hợp nhiều giá trị lại với nhau để đặt nhiều cờ bằng tham số này. Các giá trị có thể được chuyển đến tham số DeliveryNotification dưới dạng một mảng các giá trị hoặc dưới dạng một chuỗi các giá trị đó được phân tách bằng dấu phẩy. Lệnh ghép ngắn sẽ kết hợp các giá trị bằng phép toán OR nhị phân. Truyền các giá trị dưới dạng mảng là tùy chọn đơn giản nhất và cũng cho phép bạn sử dụng tính năng hoàn thành tab trên các giá trị.
- Kiểu :
Tùy chọn thông báo giao hàng
- Bí danh:
DNO
- Giá trị được chấp nhận:
Không có, Đang thành công, Không thành công, Trì hoãn, Không bao giờ
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
None
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-Encoding
Chỉ định loại mã hóa cho tệp mục tiêu. Giá trị mặc định là utf8NoBOM.
Các giá trị được chấp nhận cho tham số này như sau:
ascii: Sử dụng mã hóa cho bộ ký tự ASCII (7-bit).ansi: Sử dụng mã hóa cho trang mã ANSI của nền văn hóa hiện tại. Tùy chọn này đã được thêm vào PowerShell 7.4.bigendianunicode: Mã hóa ở định dạng UTF-16 bằng thứ tự byte lớn.bigendianutf32: Mã hóa ở định dạng UTF-32 bằng thứ tự byte lớn.oem: Sử dụng mã hóa mặc định cho các chương trình MS-DOS và bảng điều khiển.unicode: Mã hóa ở định dạng UTF-16 bằng thứ tự byte cuối nhỏ.utf7: Mã hóa ở định dạng UTF-7.utf8: Mã hóa ở định dạng UTF-8.utf8BOM: Mã hóa ở định dạng UTF-8 với Byte Order Mark (BOM)utf8NoBOM: Mã hóa ở định dạng UTF-8 không có Dấu thứ tự Byte (BOM)utf32: Mã hóa ở định dạng UTF-32.
Bắt đầu với PowerShell 6.2, tham số Encoding cũng cho phép ID số của các trang mã đã đăng ký (như -Encoding 1251) hoặc tên chuỗi của các trang mã đã đăng ký (như -Encoding "windows-1251"). Để biết thêm thông tin, hãy xem tài liệu .NET về Encoding.CodePage.
Bắt đầu với PowerShell 7.4, bạn có thể sử dụng giá trị Ansi cho tham số Encoding để chuyển ID dạng số cho trang mã ANSI của nền văn hóa hiện tại mà không cần phải chỉ định thủ công.
Ghi chú
UTF-7* không còn được khuyến nghị sử dụng nữa. Kể từ PowerShell 7.1, cảnh báo sẽ được viết nếu bạn chỉ định utf7 cho tham số Encoding.
- Kiểu :
Mã hóa
- Bí danh:
BE
- Giá trị được chấp nhận:
ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
ASCII
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-From
Tham số Từ là bắt buộc. Tham số này chỉ định địa chỉ email của người gửi. Nhập tên (tùy chọn) và địa chỉ email, chẳng hạn như Tên
- Kiểu :
String
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
None
- Yêu cầu:
True
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-Port
Chỉ định một cổng thay thế trên máy chủ SMTP. Giá trị mặc định là 25, là cổng SMTP mặc định.
- Kiểu :
Int32
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
25
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-Priority
Chỉ định mức độ ưu tiên của thông báo email. Bình thường là mặc định. Các giá trị được chấp nhận cho tham số này là Bình thường, Cao và Thấp.
- Kiểu :
MailPriority
- Giá trị được chấp nhận:
Bình thường, Cao, Thấp
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
Bình thường
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-ReplyTo
Chỉ định các địa chỉ email bổ sung (ngoài địa chỉ Từ) để sử dụng để trả lời thư này. Nhập tên (tùy chọn) và địa chỉ email, chẳng hạn như Tên
Tham số này đã được giới thiệu trong PowerShell 6.2.
- Kiểu :
String[]
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
None
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-SmtpServer
Chỉ định tên của máy chủ SMTP gửi thư email.
Giá trị mặc định là giá trị của biến tùy chọn $PSEmailServer. Nếu biến tùy chọn không được đặt và tham số này không được sử dụng thì lệnh Send-MailMessage sẽ không thành công.
- Kiểu :
String
- Bí danh:
ComputerName
- Chức vụ:
3
- Giá trị mặc định:
$PSEmailServer
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-Subject
Thông số Chủ đề là không bắt buộc. Tham số này chỉ định chủ đề của thông báo email.
- Kiểu :
String
- Bí danh:
sub
- Chức vụ:
1
- Giá trị mặc định:
None
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-To
Tham số To là bắt buộc. Tham số này chỉ định địa chỉ email của người nhận. Nhập tên (tùy chọn) và địa chỉ email, chẳng hạn như Tên
- Kiểu :
String[]
- Chức vụ:
0
- Giá trị mặc định:
None
- Yêu cầu:
True
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
-UseSsl
Giao thức Lớp cổng bảo mật (SSL) được sử dụng để thiết lập kết nối an toàn tới máy tính từ xa để gửi thư. Theo mặc định, SSL không được sử dụng.
- Kiểu :
SwitchParameter
- Chức vụ:
Được đặt tên
- Giá trị mặc định:
None
- Yêu cầu:
False
- Chấp nhận đầu vào đường ống:
True
- Chấp nhận ký tự đại diện:
False
Đầu vào
Chuỗi
Bạn có thể dẫn đường dẫn và tên tệp của phần đính kèm vào lệnh ghép ngắn này.
đầu ra
Không có
Lệnh ghép ngắn này không trả về kết quả nào.
Ghi chú
Lệnh ghép ngắn Gửi-MailMessage đã lỗi thời. Để biết thêm thông tin, hãy xem ghi chú Tương thích nền tảng DE0005. Lệnh ghép ngắn này không đảm bảo kết nối an toàn với máy chủ SMTP.
DE0005 đề xuất sử dụng thư viện của bên thứ ba, MailKit. Nếu đang sử dụng Exchange Online, bạn có thể sử dụng Send-MgUserMail từ Microsoft Graph PowerShell SDK.