CLI PowerShell pour interagir avec Microsoft 365 (Teams et Outlook) : récupérer des membres d'équipe, générer des emails personnalisés, et les envoyer via Graph API ou Outlook COM.
# 1. Connect to Microsoft Graph
Connect-MailTemplaterGraph
# 2. Fetch team members
Get-MailTemplaterTeamMembers -TeamName "Engineering" -OutputPath "./outputs/members" -ExportFormats csv,json
# 3. Generate email payloads
New-MailTemplaterPayload -Members (Import-Csv ./outputs/members/*.csv) `
-TemplatePath "./input/templates/basic.txt" `
-Subject "Team Announcement" `
-OutputPath "./outputs/mail/staged" `
-OutputFormat msg
# 4. Send via Graph API
Send-MailTemplaterMail -PayloadPath "./outputs/mail/staged" -OutputPath "./outputs/mail/sent"# 1. Verify Outlook availability
Test-OutlookAvailable
# 2. Fetch team members (or use existing CSV)
Get-MailTemplaterTeamMembers -TeamName "Engineering" -OutputPath "./outputs/members" -ExportFormats csv,json
# 3. Generate .MSG files
New-MailTemplaterPayload -Members (Import-Csv ./outputs/members/*.csv) `
-TemplatePath "./input/templates/basic.txt" `
-Subject "Team Announcement" `
-OutputPath "./outputs/mail/staged" `
-OutputFormat msg
# 4. Send via Outlook COM
Send-MailTemplaterOutlookFolder -MsgPath "./outputs/mail/staged" -ArchivePath "./outputs/mail/sent"
# Alternative: Direct send (for < 100 messages)
Send-MailTemplaterOutlookDirect -MsgPath "./outputs/mail/staged" -ArchivePath "./outputs/mail/sent"Dry-run option: Add -DryRun to any send command to preview without actually sending.
- 3 méthodes d'envoi : Graph API (cloud), Outlook COM Direct (rapide), Outlook COM Folder (robuste)
- Formats multiples : JSON, TXT, MSG (Outlook natif), EML (MIME)
- Templates tokenisés : {{UserName}}, {{Email}}, {{TeamName}}, etc.
- Export membres : CSV/JSON avec auto-détection délimiteurs (virgule, point-virgule, tabulation)
- Bootstrap auto : installe les modules Microsoft Graph et MicrosoftTeams si nécessaire
- config/: configuration (tenantId, team par défaut, versions modules)
- docs/: documentation complète
- outputs/
- members/: exports membres (CSV/JSON)
- mail/staged/: payloads prêts à envoyer
- mail/sent/: archives emails envoyés
- mail/logs/: journaux d'exécution
- input/templates/: templates texte avec tokens
- src/Public & src/Private: cmdlets et helpers
- test/: tests et données mock
- Génération : récupération membres → génération payloads (JSON/TXT/MSG/EML)
- Envoi : validation → envoi via Graph ou COM → archivage
flowchart LR
A[Teams] -->|Get-MailTemplaterTeamMembers| B[CSV/JSON]
B -->|New-MailTemplaterPayload| C[Payloads<br/>staged/]
D[Template] -->|New-MailTemplaterPayload| C
C -->|Send-*| E[Envoyés]
C --> F[sent/]
E --> G[logs/]
- Graph API : Device Code (MFA ok) avec fallback Interactive
- Scopes minimum : Mail.Send, User.ReadBasic.All, Team.ReadBasic.All, TeamMember.Read.All
- Outlook COM : utilise comptes Outlook locaux (pas d'auth nécessaire)
- docs/USAGE.md : commandes détaillées et bootstrap
- docs/SPEC.md : signatures cmdlets et schémas
- docs/SECURITY.md : authentification et permissions
- docs/QUICK_REFERENCE.md : commandes fréquentes
- docs/TESTING.md : tests et données mock
- Voir docs/SECURITY.md pour les détails d'auth et des permissions.