Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans cet article, vous allez étendre l’application que vous avez créée dans Générer des scripts PowerShell avec Microsoft Graph avec les API de messagerie Microsoft Graph. Vous utilisez Microsoft Graph pour répertorier la boîte de réception de l’utilisateur et envoyer un e-mail.
Lister la boîte de réception de l’utilisateur
Commencez par répertorier les messages dans la boîte de réception de l’utilisateur.
Dans votre session PowerShell authentifiée, vérifiez que la
$user
variable est définie.PS > $user.DisplayName Megan Bowen
Exécutez la commande suivante pour répertorier la boîte de réception de l’utilisateur.
Get-MgUserMailFolderMessage -UserId $user.Id -MailFolderId Inbox -Select ` "from,isRead,receivedDateTime,subject" -OrderBy "receivedDateTime DESC" ` -Top 25 | Format-Table Subject,@{n='From';e={$_.From.EmailAddress.Name}}, ` IsRead,ReceivedDateTime
Passez en revue la sortie.
Subject From IsRead ReceivedDateTime ------- ---- ------ ---------------- Updates from Ask HR and other communities Contoso Demo on Yammer False 4/19/2022 10:19:02 PM Employee Initiative Thoughts Patti Fernandez False 4/19/2022 3:15:56 PM Voice Mail (11 seconds) Alex Wilber False 4/18/2022 2:24:16 PM Our Spring Blog Update Alex Wilber True 4/18/2022 1:52:03 PM Atlanta Flight Reservation Alex Wilber False 4/13/2022 2:30:27 AM Atlanta Trip Itinerary - down time Alex Wilber False 4/12/2022 4:46:01 PM
Lister le code de boîte de réception expliqué
Considérez la commande utilisée pour répertorier la boîte de réception de l’utilisateur
Accès aux dossiers de courrier connus
La Get-MgUserMailFolderMessage
commande génère une requête à l’API Répertorier les messages , en utilisant spécifiquement le point de GET /users/{user-id}/mailFolders/{folder-id}/messages
terminaison. L’API retourne uniquement les messages dans le dossier de courrier demandé. Dans ce cas, étant donné que la boîte de réception est un dossier par défaut connu dans la boîte aux lettres d’un utilisateur, elle est accessible via son nom connu : -MailFolderId Inbox
. Les dossiers non définis par défaut sont accessibles de la même façon, en remplaçant le nom connu par la propriété ID du dossier de messagerie. Pour plus d’informations sur les noms de dossiers connus disponibles, consultez Type de ressource mailFolder.
Accès à une collection
Contrairement à la Get-MgUser
commande de la section précédente, qui retourne un seul objet, cette méthode retourne une collection de messages. La plupart des API de Microsoft Graph qui retournent une collection ne retournent pas tous les résultats disponibles dans une seule réponse. Au lieu de cela, ils utilisent la pagination pour retourner une partie des résultats tout en fournissant une méthode permettant aux clients de demander la page suivante.
Tailles de page par défaut
Les API qui utilisent la pagination implémentent une taille de page par défaut. Pour les messages, la valeur par défaut est 10. Les clients peuvent demander plus (ou moins) à l’aide du paramètre de requête $top . Dans le Kit de développement logiciel (SDK) Microsoft Graph PowerShell, l’ajout $top
est effectué avec le -Top 25
paramètre .
Remarque
La valeur transmise via -Top
est une limite supérieure, et non un nombre explicite. L’API retourne un certain nombre de messages jusqu’à la valeur spécifiée.
Tri des collections
La fonction utilise le -OrderBy
paramètre sur la demande pour demander des résultats triés au moment de la réception du message (receivedDateTime
propriété ). Il inclut les DESC
mot clé afin que les messages reçus plus récemment soient répertoriés en premier. Ce paramètre ajoute le paramètre de requête $orderby à l’appel d’API.
Envoyer un message
Ajoutez maintenant la possibilité d’envoyer un e-mail en tant qu’utilisateur authentifié.
Dans votre session PowerShell authentifiée, vérifiez que la
$user
variable est définie.PS > $user.DisplayName Megan Bowen
Utilisez la commande suivante pour définir un objet représentant le corps de la demande pour l’API Envoyer un courrier .
$sendMailParams = @{ Message = @{ Subject = "Testing Microsoft Graph" Body = @{ ContentType = "text" Content = "Hello world!" } ToRecipients = @( @{ EmailAddress = @{ Address = ($user.Mail ?? $user.UserPrincipalName) } } ) } }
Utilisez la commande suivante pour envoyer le message.
Send-MgUserMail -UserId $user.Id -BodyParameter $sendMailParams
Remarque
Si vous effectuez des tests auprès d’un locataire développeur dans le cadre du Programme pour développeurs Microsoft 365, l’e-mail que vous envoyez risque de ne pas être remis et vous recevrez peut-être un rapport de non-remise. Si vous souhaitez débloquer l’envoi de courrier de votre locataire, contactez le support via le Centre d’administration Microsoft 365.
Pour vérifier que le message a été reçu, répétez la
Get-MgUserMailFolderMessage
commande de l’étape précédente.
Explication de l’envoi du code de messagerie
Considérez les commandes utilisées pour envoyer un message.
Envoi de messages
La Send-MgUserMail
commande génère une requête à l’API Envoyer un courrier .
Création d’objets
Contrairement aux appels précédents à Microsoft Graph qui ne lisent que les données, cet appel crée des données. Pour créer des éléments avec le SDK, vous créez un objet représentant le corps de la requête, définissez les propriétés souhaitées, puis passez-le dans le BodyParameter
paramètre .