Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MailTemplater CLI (PowerShell)

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.

Workflows CLI - Utilisation rapide

Workflow 1: Graph API (Cloud/Microsoft 365)

# 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"

Workflow 2: Outlook COM (Local/On-premises)

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

Capacités

  • 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

Architecture

Dossiers

  • 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

Flux en deux phases

  1. Génération : récupération membres → génération payloads (JSON/TXT/MSG/EML)
  2. 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/]
Loading

Authentification

  • 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)

Documentation complète

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

About

PowerShell CLI for Microsoft Teams member management and personalized email campaigns with Outlook integration

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages