Send-MailMessage
Envoie un e-mail.
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
L’applet Send-MailMessage
de commande envoie un e-mail à partir de PowerShell.
Vous devez spécifier un serveur SMTP (Simple Mail Transfer Protocol) ou la Send-MailMessage
commande échoue. Utilisez le paramètre SmtpServer ou définissez la $PSEmailServer
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 la note de compatibilité de la 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 From, To et Subject sont requis par Send-MailMessage
. Cet exemple utilise la variable par défaut $PSEmailServer
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 Send-MailMessage
de commande utilise le paramètre From pour spécifier l’expéditeur du message. Le paramètre To spécifie le destinataire du message. Le paramètre Subject utilise le message test de chaîne de texte comme message, car le paramètre Body facultatif 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 Send-MailMessage
de commande 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 Subject décrit le contenu du message. Le paramètre Body est le contenu du message.
Le paramètre Attachments spécifie le fichier dans le répertoire actif joint au message électronique. Le paramètre Priority définit le message sur High
priorité. Le paramètre DeliveryNotificationOption spécifie deux valeurs et OnSuccess
OnFailure
. L’expéditeur reçoit 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 Send-MailMessage
de commande 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 Subject est le message, car le paramètre Body 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
.
Type: | String[] |
Aliases: | PsPath |
Position: | Named |
valeur par défaut: | None |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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, par Name <someone@fabrikam.com>
exemple .
Type: | String[] |
Position: | Named |
valeur par défaut: | None |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Body
Spécifie le contenu du message électronique.
Type: | String |
Position: | 2 |
valeur par défaut: | None |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-BodyAsHtml
Spécifie que la valeur du paramètre Body contient du code HTML.
Type: | SwitchParameter |
Aliases: | BAH |
Position: | Named |
valeur par défaut: | None |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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, par Name <someone@fabrikam.com>
exemple .
Type: | String[] |
Position: | Named |
valeur par défaut: | None |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Credential
Spécifie un compte d’utilisateur qui a l’autorisation d’exécuter 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 de l’applet Get-Credential
de commande.
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 SecureString , consultez Comment secure is SecureString ?.
Type: | PSCredential |
Position: | Named |
valeur par défaut: | Current user |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DeliveryNotificationOption
Spécifie les options de notification de remise pour le message électronique. Vous pouvez spécifier plusieurs valeurs . None 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
: notifier 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 passées au paramètre DeliveryNotification en tant que tableau de valeurs ou sous forme de chaîne séparées 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 saisie semi-automatique sous forme de tabulation sur les valeurs.
Type: | DeliveryNotificationOptions |
Aliases: | DNO |
valeurs acceptées: | None, OnSuccess, OnFailure, Delay, Never |
Position: | Named |
valeur par défaut: | None |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Encoding
Spécifie le type de codage 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 pour 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 à l’aide de l’ordre d’octet big-endian.bigendianutf32
: encode au format UTF-32 à l’aide de l’ordre d’octet big-endian.oem
: utilise l’encodage par défaut pour les programmes MS-DOS et console.unicode
: encode au format UTF-16 à l’aide de l’ordre d’octet little-endian.utf7
: encode au format UTF-7.utf8
: encode au format UTF-8.utf8BOM
: encode au format UTF-8 avec marque d’ordre d’octet (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 les ID numériques des pages de codes inscrites (par -Encoding 1251
exemple) ou des noms de chaînes de pages de codes inscrites (par exemple -Encoding "windows-1251"
). Pour plus d’informations, consultez la documentation .NET pour Encoding.CodePage.
À compter de PowerShell 7.4, vous pouvez utiliser la Ansi
valeur du paramètre Encodage pour passer l’ID numérique de la page de codes ANSI de la culture actuelle sans avoir à le spécifier manuellement.
Remarque
UTF-7* n’est plus recommandé à utiliser. À partir de PowerShell 7.1, un avertissement est écrit si vous spécifiez utf7
le paramètre Encodage .
Type: | Encoding |
Aliases: | BE |
valeurs acceptées: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
valeur par défaut: | ASCII |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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, par exemple Name <someone@fabrikam.com>
.
Type: | String |
Position: | Named |
valeur par défaut: | None |
Obligatoire: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Port
Spécifie un autre port du serveur SMTP. La valeur par défaut est 25, qui est le port SMTP par défaut.
Type: | Int32 |
Position: | Named |
valeur par défaut: | 25 |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Type: | MailPriority |
valeurs acceptées: | Normal, High, Low |
Position: | Named |
valeur par défaut: | Normal |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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, par Name <someone@fabrikam.com>
exemple .
Ce paramètre a été introduit dans PowerShell 6.2.
Type: | String[] |
Position: | Named |
valeur par défaut: | None |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SmtpServer
Spécifie le nom du serveur SMTP qui envoie le message électronique.
La valeur par défaut est la valeur de la $PSEmailServer
variable de préférence. Si la variable de préférence n’est pas définie et que ce paramètre n’est pas utilisé, la Send-MailMessage
commande échoue.
Type: | String |
Aliases: | ComputerName |
Position: | 3 |
valeur par défaut: | $PSEmailServer |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Subject
Le paramètre Subject n’est pas obligatoire. Ce paramètre spécifie l’objet du message électronique.
Type: | String |
Aliases: | sub |
Position: | 1 |
valeur par défaut: | None |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-To
Le paramètre To est requis. Ce paramètre spécifie l’adresse e-mail du destinataire. Entrez les noms (facultatif) et l’adresse e-mail, par Name <someone@fabrikam.com>
exemple .
Type: | String[] |
Position: | 0 |
valeur par défaut: | None |
Obligatoire: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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é.
Type: | SwitchParameter |
Position: | Named |
valeur par défaut: | None |
Obligatoire: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Entrées
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 pas de sortie.
Notes
L’applet de commande Send-MailMessage
est obsolète. Pour plus d’informations, consultez la note de compatibilité de la 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 Send-MgUserMail à partir du Kit de développement logiciel (SDK) Microsoft Graph PowerShell.