Partager via


Send-MailMessage

Envoie un e-mail.

Syntaxe

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

L’applet de commande Send-MailMessage envoie un e-mail à partir de PowerShell.

Vous devez spécifier un serveur SMTP (Simple Mail Transfer Protocol) ou la commande Send-MailMessage échoue. Utilisez le paramètre smtpServer ou définissez la variable sur un serveur SMTP valide. La valeur affectée à $PSEmailServer est le paramètre SMTP par défaut pour PowerShell. Pour plus d'informations, consultez about_Preference_Variables.

Avertissement

L’applet de commande Send-MailMessage est obsolète. Cette applet de commande ne garantit pas la sécurisation des connexions aux serveurs SMTP. Bien qu’il n’existe aucun remplacement immédiat disponible dans PowerShell, nous vous recommandons de ne pas utiliser Send-MailMessage. Pour plus d’informations, consultez note de compatibilité de plateforme DE0005.

Exemples

Exemple 1 : Envoyer un e-mail d’une personne à une autre personne

Cet exemple envoie un e-mail d’une personne à une autre personne.

Les paramètres De, Àet Objet sont requis par Send-MailMessage. Cet exemple utilise la variable $PSEmailServer par défaut pour le serveur SMTP. Par conséquent, le paramètre SmtpServer n’est pas nécessaire.

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

L’applet de commande Send-MailMessage utilise le paramètre From pour spécifier l’expéditeur du message. Le paramètre À spécifie le destinataire du message. Le paramètre Objet utilise la chaîne de texte Test mail comme message, car le paramètre facultatif Body n’est pas inclus.

Exemple 2 : Envoyer une pièce jointe

Cet exemple envoie un message électronique avec une pièce jointe.

$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

L’applet de commande Send-MailMessage utilise le paramètre From pour spécifier l’expéditeur du message. Le paramètre To spécifie les destinataires du message. Le paramètre Objet décrit le contenu du message. Le paramètre Body est le contenu du message.

Le paramètre Pièces jointes spécifie le fichier dans le répertoire actif attaché au message électronique. Le paramètre Priority définit le message sur High priorité. Le paramètre DeliveryNotificationOption spécifie deux valeurs, OnSuccess et OnFailure. L’expéditeur reçoit des notifications par e-mail pour confirmer la réussite ou l’échec de la remise du message. Le paramètre SmtpServer définit le serveur SMTP sur smtp.fabrikam.com.

Exemple 3 : Envoyer un e-mail à une liste de diffusion

Cet exemple envoie un e-mail à une liste de diffusion.

$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

L’applet de commande Send-MailMessage utilise le paramètre From pour spécifier l’expéditeur du message. Le paramètre To spécifie les destinataires du message. Le paramètre Cc envoie une copie du message au destinataire spécifié. Le paramètre cci envoie une copie aveugle du message. Une copie aveugle est une adresse e-mail masquée par les autres destinataires. Le paramètre Objet est le message, car le paramètre corps facultatif n’est pas inclus.

Le paramètre Credential spécifie les informations d’identification d’un administrateur de domaine sont utilisées pour envoyer le message. Le paramètre UseSsl spécifie que ssl (Secure Socket Layer) crée une connexion sécurisée.

Paramètres

-Attachments

Spécifie le chemin d’accès et les noms de fichiers à joindre au message électronique. Vous pouvez utiliser ce paramètre ou diriger les chemins d’accès et les noms de fichiers vers Send-MailMessage.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:PsPath

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Bcc

Spécifie les adresses e-mail qui reçoivent une copie du courrier, mais qui ne sont pas répertoriées en tant que destinataires du message. Entrez les noms (facultatif) et l’adresse e-mail, telles que Name <someone@fabrikam.com>.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Body

Spécifie le contenu du message électronique.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:2
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-BodyAsHtml

Spécifie que la valeur du paramètre Body contient du code HTML.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:BAH

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Cc

Spécifie les adresses e-mail auxquelles une copie carbone (CC) du message électronique est envoyée. Entrez les noms (facultatif) et l’adresse e-mail, telles que Name <someone@fabrikam.com>.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Credential

Spécifie un compte d’utilisateur autorisé à effectuer cette action. La valeur par défaut est l’utilisateur actuel.

Tapez un nom d’utilisateur, tel que User01 ou Domain01\User01. Vous pouvez également entrer un objet PSCredential, tel qu’un objet à partir de l’applet de commande Get-Credential.

Les informations d’identification sont stockées dans un objet PSCredential et le mot de passe est stocké en tant que SecureString.

Remarque

Pour plus d’informations sur la protection des données de SecureString, consultez Quelle est la sécurité de SecureString ?.

Propriétés du paramètre

Type:PSCredential
Valeur par défaut:Current user
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-DeliveryNotificationOption

Spécifie les options de notification de remise pour le message électronique. Vous pouvez spécifier plusieurs valeurs. Aucune n’est la valeur par défaut. L’alias de ce paramètre est DNO .

Les notifications de remise sont envoyées à l’adresse dans le paramètre From.

Les valeurs acceptables pour ce paramètre sont les suivantes :

  • None: aucune notification.
  • OnSuccess: informez si la remise réussit.
  • OnFailure: notifier si la remise échoue.
  • Delay: notifier si la remise est retardée.
  • Never: Ne jamais notifier.

Ces valeurs sont définies comme une énumération basée sur des indicateurs. Vous pouvez combiner plusieurs valeurs pour définir plusieurs indicateurs à l’aide de ce paramètre. Les valeurs peuvent être transmises au paramètre DeliveryNotification en tant que tableau de valeurs ou sous forme de chaîne séparée par des virgules de ces valeurs. L’applet de commande combine les valeurs à l’aide d’une opération binary-OR. La transmission de valeurs en tant que tableau est l’option la plus simple et vous permet également d’utiliser la complétion par tabulation pour les valeurs.

Propriétés du paramètre

Type:DeliveryNotificationOptions
Valeur par défaut:None
Valeurs acceptées:None, OnSuccess, OnFailure, Delay, Never
Prend en charge les caractères génériques:False
DontShow:False
Alias:DNO

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Encoding

Spécifie le type d’encodage du fichier cible. La valeur par défaut est utf8NoBOM.

Les valeurs acceptables pour ce paramètre sont les suivantes :

  • ascii: utilise l’encodage pour le jeu de caractères ASCII (7 bits).
  • ansi: Utilise l’encodage de la page de codes ANSI de la culture actuelle. Cette option a été ajoutée dans PowerShell 7.4.
  • bigendianunicode: encode au format UTF-16 avec primauté des octets de poids fort.
  • bigendianutf32: encode au format UTF-32 avec primauté des octets de poids fort.
  • oem: utilise l’encodage par défaut pour les programmes MS-DOS et console.
  • unicode: encode au format UTF-16 avec primauté des octets de poids faible.
  • utf7: encode au format UTF-7.
  • utf8: encode au format UTF-8.
  • utf8BOM: encode au format UTF-8 avec indicateur d'ordre des octets (BOM)
  • utf8NoBOM: encode au format UTF-8 sans marque d’ordre d’octet (BOM)
  • utf32: encode au format UTF-32.

À compter de PowerShell 6.2, le paramètre d’encodage autorise également des ID numériques de pages de codes inscrites (comme -Encoding 1251) ou des noms de chaînes de pages de codes inscrites (comme -Encoding "windows-1251"). Pour plus d’informations, consultez la documentation .NET pour Encoding.CodePage.

À compter de PowerShell 7.4, vous pouvez utiliser la valeur Ansi pour le paramètre d’encodage afin de transmettre l’ID numérique de la page de codes ANSI de l'actuelle culture sans avoir à le spécifier manuellement.

Remarque

UTF-7* n’est plus recommandé d’utiliser. À partir de PowerShell 7.1, un avertissement est écrit si vous spécifiez utf7 pour le paramètre d’encodage .

Propriétés du paramètre

Type:Encoding
Valeur par défaut:ASCII
Valeurs acceptées:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Prend en charge les caractères génériques:False
DontShow:False
Alias:ÊTRE

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-From

Le paramètre From est requis. Ce paramètre spécifie l’adresse e-mail de l’expéditeur. Entrez un nom (facultatif) et une adresse e-mail, comme Name <someone@fabrikam.com>.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Port

Spécifie un autre port sur le serveur SMTP. La valeur par défaut est 25, qui est le port SMTP par défaut.

Propriétés du paramètre

Type:Int32
Valeur par défaut:25
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Priority

Spécifie la priorité du message électronique. Normal est la valeur par défaut. Les valeurs acceptables pour ce paramètre sont Normal, High et Low.

Propriétés du paramètre

Type:MailPriority
Valeur par défaut:Normal
Valeurs acceptées:Normal, High, Low
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-ReplyTo

Spécifie des adresses e-mail supplémentaires (autres que l’adresse De) à utiliser pour répondre à ce message. Entrez les noms (facultatif) et l’adresse e-mail, telles que Name <someone@fabrikam.com>.

Ce paramètre a été introduit dans PowerShell 6.2.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-SmtpServer

Spécifie le nom du serveur SMTP qui envoie le message électronique.

La valeur par défaut est la valeur de la variable de préférence $PSEmailServer. Si la variable de préférence n’est pas définie et que ce paramètre n’est pas utilisé, la commande Send-MailMessage échoue.

Propriétés du paramètre

Type:String
Valeur par défaut:$PSEmailServer
Prend en charge les caractères génériques:False
DontShow:False
Alias:Nom de l'ordinateur

Jeux de paramètres

(All)
Position:3
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Subject

Le paramètre Subject n’est pas obligatoire. Ce paramètre spécifie l’objet du message électronique.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:sous

Jeux de paramètres

(All)
Position:1
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-To

Le paramètre À est requis. Ce paramètre spécifie l’adresse e-mail du destinataire. Entrez les noms (facultatif) et l’adresse e-mail, telles que Name <someone@fabrikam.com>.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:0
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-UseSsl

Le protocole SSL (Secure Sockets Layer) est utilisé pour établir une connexion sécurisée à l’ordinateur distant pour envoyer du courrier. Par défaut, SSL n’est pas utilisé.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

String

Vous pouvez diriger le chemin d’accès et les noms de fichiers des pièces jointes vers cette applet de commande.

Sorties

None

Cette applet de commande ne retourne aucune sortie.

Notes

L’applet de commande Send-MailMessage est obsolète. Pour plus d’informations, consultez note de compatibilité de plateforme DE0005. Cette applet de commande ne garantit pas la sécurisation des connexions aux serveurs SMTP.

DE0005 suggère d’utiliser la bibliothèque tierce MailKit. Si vous utilisez Exchange Online, vous pouvez utiliser le Send-MgUserMail à partir du Kit de développement logiciel (SDK) Microsoft Graph PowerShell.