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 OnSuccessOnFailure. 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 1251exemple) 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

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 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.