Send-MailMessage

E-posta iletisi gönderir.

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'in içinden bir e-posta iletisi gönderir.

Basit Posta Aktarım Protokolü (SMTP) sunucusu belirtmeniz gerekir, aksi zaman Send-MailMessage komut başarısız olur. SmtpServer parametresini kullanın veya değişkeni geçerli bir SMTP sunucusu olarak ayarlayın$PSEmailServer. Atanan $PSEmailServer değer, PowerShell için varsayılan SMTP ayarıdır. Daha fazla bilgi için bkz . about_Preference_Variables.

Uyarı

Send-MailMessage cmdlet'i kullanımdan kaldırıldı. Bu cmdlet SMTP sunucularına güvenli bağlantıları garanti etmez. PowerShell'de hemen yenisi olmasa da, kullanmamanızı Send-MailMessageöneririz. Daha fazla bilgi için bkz . Platform Uyumluluğu notu DE0005.

Örnekler

Örnek 1: Bir kişiden diğerine e-posta gönderme

Bu örnek, bir kişiden diğerine e-posta iletisi gönderir.

From, To ve Subject parametreleri tarafından Send-MailMessagegereklidir. Bu örnekte SMTP sunucusu için varsayılan $PSEmailServer değişken kullanıldığından SmtpServer parametresi gerekli değildir.

$sendMailMessageSplat = @{
    From = 'User01 <user01@fabrikam.com>'
    To = 'User02 <user02@fabrikam.com>'
    Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplat

Cmdlet, Send-MailMessage iletinin gönderenini belirtmek için From parametresini kullanır. Hedef parametresi, iletinin alıcısını belirtir. İsteğe bağlı Body parametresi dahil olmadığından, Konu parametresi ileti olarak Test postası metin dizesini kullanır.

Örnek 2: Ek gönderme

Bu örnek ek içeren bir e-posta iletisi gönderir.

$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

Cmdlet, Send-MailMessage iletinin gönderenini belirtmek için From parametresini kullanır. Hedef parametresi, iletinin alıcılarını belirtir. Subject parametresi iletinin içeriğini açıklar. Body parametresi iletinin içeriğidir.

Ekler parametresi, e-posta iletisine eklenmiş olan geçerli dizindeki dosyayı belirtir. Priority parametresi iletiyi önceliğe High ayarlar. DeliveryNotificationOption parametresi iki değer OnSuccess belirtir ve OnFailure. Gönderen, ileti tesliminin başarılı veya başarısız olduğunu onaylamak için e-posta bildirimleri alır. SmtpServer parametresi SMTP sunucusunu olarak smtp.fabrikam.comayarlar.

Örnek 3: Posta listesine e-posta gönderme

Bu örnek, posta listesine bir e-posta iletisi gönderir.

$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

Cmdlet, Send-MailMessage iletinin gönderenini belirtmek için From parametresini kullanır. Hedef parametresi, iletinin alıcılarını belirtir. Bilgi parametresi, iletinin bir kopyasını belirtilen alıcıya gönderir. Gizli parametresi iletinin kör bir kopyasını gönderir. Gizli kopya, diğer alıcılardan gizlenen bir e-posta adresidir. İsteğe bağlı Body parametresi dahil olmadığından Subject parametresi iletidir.

Credential parametresi, iletiyi göndermek için etki alanı yöneticisinin kimlik bilgilerinin kullanıldığını belirtir. UseSsl parametresi, Güvenli Yuva Katmanı'nın (SSL) güvenli bir bağlantı oluşturduğunu belirtir.

Parametreler

-Attachments

E-posta iletisine eklenecek dosyaların yolunu ve dosya adlarını belirtir. Bu parametreyi kullanabilir veya yolları ve dosya adlarını adresine aktarabilirsiniz Send-MailMessage.

Tür:String[]
Aliases:PsPath
Position:Named
varsayılan değer:None
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-Bcc

Postanın bir kopyasını alan ancak iletinin alıcıları olarak listelenmeyen e-posta adreslerini belirtir. Adları (isteğe bağlı) ve gibi Name <someone@fabrikam.com>e-posta adresini girin.

Tür:String[]
Position:Named
varsayılan değer:None
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-Body

E-posta iletisinin içeriğini belirtir.

Tür:String
Position:2
varsayılan değer:None
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-BodyAsHtml

Body parametresinin değerinin HTML içerdiğini belirtir.

Tür:SwitchParameter
Aliases:BAH
Position:Named
varsayılan değer:None
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-Cc

E-posta iletisinin karbon kopyasının (CC) gönderileceği e-posta adreslerini belirtir. Adları (isteğe bağlı) ve gibi Name <someone@fabrikam.com>e-posta adresini girin.

Tür:String[]
Position:Named
varsayılan değer:None
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Bu eylemi gerçekleştirme iznine sahip bir kullanıcı hesabı belirtir. Varsayılan, mevcut kullanıcıdır.

User01 veya Domain01\User01 gibi bir kullanıcı adı yazın. Alternatif olarak, cmdlet'indeki Get-Credential gibi bir PSCredential nesnesi de girin.

Kimlik bilgileri bir PSCredential nesnesinde depolanır ve parola SecureString olarak depolanır.

Not

SecureString veri koruması hakkında daha fazla bilgi için bkz. SecureString ne kadar güvenli?.

Tür:PSCredential
Position:Named
varsayılan değer:Current user
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-DeliveryNotificationOption

E-posta iletisi için teslim bildirimi seçeneklerini belirtir. Birden çok değer belirtebilirsiniz. Hiçbiri varsayılan değerdir. Bu parametrenin diğer adı DNO'dur.

Teslim bildirimleri From parametresindeki adrese gönderilir.

Bu parametre için kabul edilebilir değerler aşağıdaki gibidir:

  • None: Bildirim yok.
  • OnSuccess: Teslimin başarılı olup olmadığını bildirin.
  • OnFailure: Teslimin başarısız olup olmadığını bildirin.
  • Delay: Teslimin gecikip ertelenmediğini bildirin.
  • Never: Hiçbir zaman bildirimde bulunmayın.

Bu değerler, bayrak tabanlı bir numaralandırma olarak tanımlanır. Bu parametreyi kullanarak birden çok bayrak ayarlamak için birden çok değeri birlikte birleştirebilirsiniz. Değerler DeliveryNotification parametresine bir değer dizisi veya bu değerlerin virgülle ayrılmış dizesi olarak geçirilebilir. cmdlet'i bir ikili OR işlemi kullanarak değerleri birleştirir. Değerleri dizi olarak geçirmek en basit seçenektir ve değerler üzerinde sekme tamamlama özelliğini kullanmanıza da olanak tanır.

Tür:DeliveryNotificationOptions
Aliases:DNO
kabul edilen değerler:None, OnSuccess, OnFailure, Delay, Never
Position:Named
varsayılan değer:None
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-Encoding

Hedef dosya için kodlama türünü belirtir. Varsayılan değer şudur: utf8NoBOM.

Bu parametre için kabul edilebilir değerler aşağıdaki gibidir:

  • ascii: ASCII (7 bit) karakter kümesi için kodlamayı kullanır.
  • ansi: Geçerli kültürün ANSI kod sayfasının kodlamasını kullanır. Bu seçenek PowerShell 7.4'e eklendi.
  • bigendianunicode: Büyük endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.
  • bigendianutf32: Büyük endian bayt sırasını kullanarak UTF-32 biçiminde kodlar.
  • oem: MS-DOS ve konsol programları için varsayılan kodlamayı kullanır.
  • unicode: Little-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.
  • utf7: UTF-7 biçiminde kodlar.
  • utf8: UTF-8 biçiminde kodlar.
  • utf8BOM: Bayt Sırası İşareti (BOM) ile UTF-8 biçiminde kodlar
  • utf8NoBOM: Bayt Sipariş İşareti (BOM) olmadan UTF-8 biçiminde kodlar
  • utf32: UTF-32 biçiminde kodlar.

PowerShell 6.2'den başlayarak Kodlama parametresi, kayıtlı kod sayfalarının (gibi-Encoding 1251) sayısal kimliklerine veya kayıtlı kod sayfalarının dize adlarına da (gibi-Encoding "windows-1251") izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.

PowerShell 7.4'den başlayarak Kodlama parametresinin değerini kullanarak Ansi geçerli kültürün ANSI kod sayfasının sayısal kimliğini el ile belirtmek zorunda kalmadan geçirebilirsiniz.

Not

UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren Kodlama parametresini belirtirseniz utf7 bir uyarı yazılır.

Tür:Encoding
Aliases:BE
kabul edilen değerler:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
varsayılan değer:ASCII
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-From

From parametresi gereklidir. Bu parametre gönderenin e-posta adresini belirtir. Ad (isteğe bağlı) ve gibi Name <someone@fabrikam.com>bir e-posta adresi girin.

Tür:String
Position:Named
varsayılan değer:None
Gerekli:True
Accept pipeline input:True
Accept wildcard characters:False

-Port

SMTP sunucusunda alternatif bir bağlantı noktası belirtir. Varsayılan değer, varsayılan SMTP bağlantı noktası olan 25'tir.

Tür:Int32
Position:Named
varsayılan değer:25
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-Priority

E-posta iletisinin önceliğini belirtir. Normal varsayılan değerdir. Bu parametre için kabul edilebilir değerler Normal, Yüksek ve Düşük'tir.

Tür:MailPriority
kabul edilen değerler:Normal, High, Low
Position:Named
varsayılan değer:Normal
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-ReplyTo

Bu iletiyi yanıtlamak için kullanılacak ek e-posta adreslerini (Kimden adresi dışında) belirtir. Adları (isteğe bağlı) ve gibi Name <someone@fabrikam.com>e-posta adresini girin.

Bu parametre PowerShell 6.2'de kullanıma sunulmuştur.

Tür:String[]
Position:Named
varsayılan değer:None
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-SmtpServer

E-posta iletisini gönderen SMTP sunucusunun adını belirtir.

Varsayılan değer, tercih değişkeninin $PSEmailServer değeridir. Tercih değişkeni ayarlanmadıysa ve bu parametre kullanılmıyorsa, Send-MailMessage komut başarısız olur.

Tür:String
Aliases:ComputerName
Position:3
varsayılan değer:$PSEmailServer
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-Subject

Subject parametresi gerekli değildir. Bu parametre, e-posta iletisinin konusunu belirtir.

Tür:String
Aliases:sub
Position:1
varsayılan değer:None
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

-To

To parametresi gereklidir. Bu parametre alıcının e-posta adresini belirtir. Adları (isteğe bağlı) ve gibi Name <someone@fabrikam.com>e-posta adresini girin.

Tür:String[]
Position:0
varsayılan değer:None
Gerekli:True
Accept pipeline input:True
Accept wildcard characters:False

-UseSsl

Güvenli Yuva Katmanı (SSL) protokolü, posta göndermek üzere uzak bilgisayara güvenli bir bağlantı kurmak için kullanılır. Varsayılan olarak SSL kullanılmaz.

Tür:SwitchParameter
Position:Named
varsayılan değer:None
Gerekli:False
Accept pipeline input:True
Accept wildcard characters:False

Girişler

String

Eklerin yolunu ve dosya adlarını bu cmdlet'e aktarabilirsiniz.

Çıkışlar

None

Bu cmdlet çıkış döndürmez.

Notlar

Send-MailMessage cmdlet'i kullanımdan kaldırıldı. Daha fazla bilgi için bkz . Platform Uyumluluğu notu DE0005. Bu cmdlet SMTP sunucularına güvenli bağlantıları garanti etmez.

DE0005 , mailkit üçüncü taraf kitaplığının kullanılmasını önerir. Exchange Online kullanıyorsanız, Microsoft Graph PowerShell SDK'sından Send-MgUserMail'i kullanabilirsiniz.